X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fclient.c;h=20bcf06766f0cd6f3b96d704d7c5887d764f59a9;hb=b61a41c6b12a181d70b9976080fde6accf558218;hp=a5c29a3b76f0443c0354fc5d5a39af8ceae5766a;hpb=d085756572ae13035f69ab6fd3f7c9556d155e9c;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index a5c29a3b..20bcf067 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -290,11 +290,11 @@ void client_manage(Window window) screen_update_struts(); + dispatch_client(Event_Client_New, self, 0, 0); + /* make sure the window is visible */ client_move_onscreen(self); - dispatch_client(Event_Client_New, self, 0, 0); - client_showhide(self); if (activate) client_activate(self); @@ -1027,10 +1027,7 @@ void client_setup_decor_and_functions(Client *self) if (self->type == Type_Desktop && self->desktop != DESKTOP_ALL) client_set_desktop(self, DESKTOP_ALL, FALSE); - /* change the decors on the frame, and with more/less decorations, - we may also need to be repositioned */ - frame_adjust_area(self->frame, TRUE, TRUE); - /* with new decor, the window's maximized size may change */ + /* adjust the client's decorations, etc. */ client_reconfigure(self); } else { /* this makes sure that these windows appear on all desktops */ @@ -1775,6 +1772,9 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h, /* move/resize the frame to match the request */ if (self->frame) { + if (self->decorations != self->frame->decorations) + moved = resized = TRUE; + if (moved || resized) frame_adjust_area(self->frame, moved, resized);