put transients on the current desktop when their parent is on all desktops
authorDana Jansens <danakj@orodu.net>
Mon, 28 May 2007 00:05:51 +0000 (00:05 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 28 May 2007 00:05:51 +0000 (00:05 +0000)
openbox/client.c

index 3f891b5..dbbba7d 100644 (file)
@@ -1122,13 +1122,16 @@ static void client_get_desktop(ObClient *self)
             self->desktop = screen_num_desktops - 1;
         else
             self->desktop = d;
+        ob_debug("client requested desktop 0x%x\n", self->desktop); 
     } else {
         gboolean trdesk = FALSE;
 
         if (self->transient_for) {
             if (self->transient_for != OB_TRAN_GROUP) {
-                self->desktop = self->transient_for->desktop;
-                trdesk = TRUE;
+                if (self->transient_for->desktop != DESKTOP_ALL) {
+                    self->desktop = self->transient_for->desktop;
+                    trdesk = TRUE;
+                }
             } else {
                 /* if all the group is on one desktop, then open it on the
                    same desktop */