all repos — openbox @ d94fba72624f88f7e0457dc4eb9a0f6b1699f23b

openbox fork - make it a bit more like ryudo

save the frame decorations in client_configure_full before causing the fake frame adjust, since that loses its old value.
Dana Jansens danakj@orodu.net
commit

d94fba72624f88f7e0457dc4eb9a0f6b1699f23b

parent

084c66a32ab9c3587eb0d45c1c5427792d79cb33

1 files changed, 4 insertions(+), 9 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -1114,14 +1114,8 @@

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 @@ gboolean user, gboolean final,

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 @@ XResizeWindow(ob_display, self->window, w, h);

/* 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)