save the frame decorations in client_configure_full before causing the fake frame adjust, since that loses its old value.

This commit is contained in:
Dana Jansens 2003-08-10 23:30:15 +00:00
parent 084c66a32a
commit d94fba7262

View file

@ -1114,14 +1114,8 @@ void client_setup_decor_and_functions(ObClient *self)
client_change_allowed_actions(self);
if (self->frame) {
if (self->decorations != self->frame->decorations)
/* adjust the client's decorations, etc. */
client_reconfigure(self);
/* we actually have to do this twice :P
the first time it removes the decorations, but now it may need to
be reconstrained for being maximized etc, so calling this again
will work with the new setup of decorations on the window */
client_reconfigure(self);
/* adjust the client's decorations, etc. */
client_reconfigure(self);
} else {
/* this makes sure that these windows appear on all desktops */
if (self->type == OB_CLIENT_TYPE_DESKTOP &&
@ -1711,6 +1705,7 @@ void client_configure_full(ObClient *self, ObCorner anchor,
gboolean force_reply)
{
gboolean moved = FALSE, resized = FALSE;
gint fdecor = self->frame->decorations;
/* make the frame recalculate its dimentions n shit without changing
anything visible for real, this way the constraints below can work with
@ -1901,7 +1896,7 @@ void client_configure_full(ObClient *self, ObCorner anchor,
/* move/resize the frame to match the request */
if (self->frame) {
if (self->decorations != self->frame->decorations)
if (self->decorations != fdecor)
moved = resized = TRUE;
if (moved || resized)