]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
don't force clients on screen when restarting
[chaz/openbox] / openbox / client.c
index fa67e367f14aa419bf6cec47a55b9b5f28231a36..4cfece1dd2e8996bcc83632ab195e8b70ebfab46 100644 (file)
@@ -411,10 +411,11 @@ void client_manage(Window window)
                                 splash screens get "transient" set to TRUE by
                                 the place_client call
                              */
-                             transient ||
-                             (!(self->positioned & USPosition) &&
-                              client_normal(self) &&
-                              !self->session));
+                             ob_state() == OB_STATE_RUNNING &&
+                             (transient ||
+                              (!(self->positioned & USPosition) &&
+                               client_normal(self) &&
+                               !self->session)));
     }
 
     /* if the window isn't user-sized, then make it fit inside
@@ -426,10 +427,11 @@ void client_manage(Window window)
        splash screens get "transient" set to TRUE by
        the place_client call
     */
-    if (transient ||
-        (!(self->sized & USSize) &&
-         client_normal(self) &&
-         !self->session))
+    if (ob_state() == OB_STATE_RUNNING &&
+        (transient ||
+         (!(self->sized & USSize) &&
+          client_normal(self) &&
+          !self->session)))
     {
         /* make a copy to modify */
         Rect a = *screen_area_monitor(self->desktop, client_monitor(self));
@@ -1152,6 +1154,9 @@ static void client_get_desktop(ObClient *self)
 
                 for (it = self->group->members; it; it = g_slist_next(it)) {
                     ObClient *c = it->data;
+
+                    if (c->desktop == DESKTOP_ALL) continue;
+
                     if (c != self) {
                         if (first) {
                             all = c->desktop;
This page took 0.024271 seconds and 4 git commands to generate.