X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=875c790bd8e727cc222b1796e2fef3add29718a5;hb=119c48fc6c90da5ebb2fc59425bbdb30f4576e47;hp=e4804bcc0872be2d69b28d61b374f6e64caa22e2;hpb=bca4fe6c8b8d1ab8b2c9273149f48fd9cd4e0f4d;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index e4804bcc..875c790b 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -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);