]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
you can't resize fully maxed windows
[chaz/openbox] / openbox / client.c
index e4804bcc0872be2d69b28d61b374f6e64caa22e2..875c790bd8e727cc222b1796e2fef3add29718a5 100644 (file)
@@ -1685,6 +1685,10 @@ void client_setup_decor_and_functions(ObClient *self)
         }
     }
 
+    /* can't resize maximized windows */
+    if (self->max_horz && self->max_vert)
+        self->functions &=~ OB_CLIENT_FUNC_RESIZE;
+
     if (!(self->functions & OB_CLIENT_FUNC_SHADE))
         self->decorations &= ~OB_FRAME_DECOR_SHADE;
     if (!(self->functions & OB_CLIENT_FUNC_ICONIFY))
@@ -1700,10 +1704,6 @@ void client_setup_decor_and_functions(ObClient *self)
         self->decorations &= ~OB_FRAME_DECOR_MAXIMIZE;
     }
 
-    /* kill the handle on fully maxed windows */
-    if (self->max_vert && self->max_horz)
-        self->decorations &= ~(OB_FRAME_DECOR_HANDLE | OB_FRAME_DECOR_GRIPS);
-
     /* If there are no decorations to remove, don't allow the user to try
        toggle the state */
     if (self->decorations == 0)
@@ -2740,6 +2740,7 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
     gboolean fmoved, fresized;
     guint fdecor = self->frame->decorations;
     gboolean fhorz = self->frame->max_horz;
+    gboolean fvert = self->frame->max_vert;
     gint logicalw, logicalh;
 
     /* find the new x, y, width, and height (and logical size) */
@@ -2775,8 +2776,11 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
     /* find the frame's dimensions and move/resize it */
     fmoved = moved;
     fresized = resized;
-    if (self->decorations != fdecor || self->max_horz != fhorz)
+    if (self->decorations != fdecor ||
+        self->max_horz != fhorz || self->max_vert != fvert)
+    {
         fmoved = fresized = TRUE;
+    }
     if (fmoved || fresized)
         frame_adjust_area(self->frame, fmoved, fresized, FALSE);
 
This page took 0.020841 seconds and 4 git commands to generate.