]> Dogcows Code - chaz/openbox/commitdiff
the configurenotify needs to come after adjusting the frame's size. otherwise it...
authorDana Jansens <danakj@orodu.net>
Mon, 14 May 2007 02:27:43 +0000 (02:27 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 14 May 2007 02:27:43 +0000 (02:27 +0000)
openbox/client.c

index 5802b816e258b2f83ad02975321fcda9a5042609..10626633e64846917c5bf0c20cefdebe52bd16f9 100644 (file)
@@ -414,10 +414,6 @@ void client_manage(Window window)
                               !self->session));
     }
 
-    /* do this after the window is placed, so the premax/prefullscreen numbers
-       won't be all wacko!!
-       also, this moves the window to the position where it has been placed
-    */
     ob_debug("placing window 0x%x at %d, %d with size %d x %d\n",
              self->window, self->area.x, self->area.y,
              self->area.width, self->area.height);
@@ -425,9 +421,25 @@ void client_manage(Window window)
         ob_debug("  but session requested %d %d instead, overriding\n",
                  self->session->x, self->session->y);
 
-    client_apply_startup_state(self);
+    /* adjust the frame to the client's size before showing the window */
+    frame_adjust_area(self->frame, FALSE, TRUE, FALSE);
+    frame_adjust_client_area(self->frame);
 
-    mouse_grab_for_client(self, TRUE);
+
+    /* move the client to its placed position, or it it's already there,
+       generate a ConfigureNotify telling the client where it is.
+
+       do this after adjusting the frame. otherwise it gets all weird and
+       clients don't work right */
+    client_configure_full(self, self->area.x, self->area.y,
+                          self->area.width, self->area.height,
+                          FALSE, TRUE);
+
+    /* do this after the window is placed, so the premax/prefullscreen numbers
+       won't be all wacko!!
+       also, this moves the window to the position where it has been placed
+    */
+    client_apply_startup_state(self);
 
     if (activate) {
         guint32 last_time = focus_client ?
@@ -495,24 +507,13 @@ void client_manage(Window window)
             stacking_raise(CLIENT_AS_WINDOW(self));
     }
 
-    /* adjust the frame to the client's size before showing the window */
-    frame_adjust_area(self->frame, FALSE, TRUE, FALSE);
-    frame_adjust_client_area(self->frame);
+    mouse_grab_for_client(self, TRUE);
 
     /* this has to happen before we try focus the window, but we want it to
        happen after the client's stacking has been determined or it looks bad
     */
     client_show(self);
 
-    /* generate a ConfigureNotify telling the client where it is.
-
-       do this after showing the window. otherwise applications tend to
-       ignore the configurenotify. */
-    client_configure_full(self, self->area.x, self->area.y,
-                          self->area.width, self->area.height,
-                          FALSE, TRUE);
-
-
     if (activate) {
         gboolean stacked = client_restore_session_stacking(self);
         client_present(self, FALSE, !stacked);
This page took 0.031463 seconds and 4 git commands to generate.