]> Dogcows Code - chaz/openbox/commitdiff
when holding Shift for the client list menus, bring the selected client to the curren...
authorDana Jansens <danakj@orodu.net>
Tue, 22 Dec 2009 16:44:07 +0000 (11:44 -0500)
committerDana Jansens <danakj@orodu.net>
Tue, 22 Dec 2009 16:44:07 +0000 (11:44 -0500)
openbox/client_list_combined_menu.c
openbox/client_list_menu.c

index 593010ebf5fd4691d50570e97cd31818bfab9ec9..5b79b806b09d3e6a22ca62ee566eeef7e2817e53 100644 (file)
@@ -114,10 +114,12 @@ static void menu_execute(ObMenuEntry *self, ObMenuFrame *f,
     else {
         ObClient *t = self->data.normal.data;
         if (t) { /* it's set to NULL if its destroyed */
-            client_activate(t, TRUE, FALSE, TRUE, TRUE, TRUE);
+            gboolean here = state & ShiftMask;
+
+            client_activate(t, TRUE, here, TRUE, TRUE, TRUE);
             /* if the window is omnipresent then we need to go to its
                desktop */
-            if (t->desktop == DESKTOP_ALL)
+            if (!here && t->desktop == DESKTOP_ALL)
                 screen_set_desktop(self->id, FALSE);
         }
         else
index 2e87259befef7828d6ef5e1e6d6d2352469e0c3a..c49e63e997f2dd3bca6bfa1e60a81b1aeefda7b4 100644 (file)
@@ -101,10 +101,12 @@ static void desk_menu_execute(ObMenuEntry *self, ObMenuFrame *f,
 {
     ObClient *t = self->data.normal.data;
     if (t) { /* it's set to NULL if its destroyed */
-        client_activate(t, TRUE, FALSE, TRUE, TRUE, TRUE);
+        gboolean here = state & ShiftMask;
+
+        client_activate(t, TRUE, here, TRUE, TRUE, TRUE);
         /* if the window is omnipresent then we need to go to its
            desktop */
-        if (t->desktop == DESKTOP_ALL)
+        if (!here && t->desktop == DESKTOP_ALL)
             screen_set_desktop(self->id, FALSE);
     }
     else
This page took 0.024728 seconds and 4 git commands to generate.