]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
menus were too short by a border width
[chaz/openbox] / openbox / client.c
index a5c29a3b76f0443c0354fc5d5a39af8ceae5766a..20bcf06766f0cd6f3b96d704d7c5887d764f59a9 100644 (file)
@@ -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);
 
This page took 0.020459 seconds and 4 git commands to generate.