From 7ac0b9196585654327a6a5967c1f55561722a401 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 22 Dec 2009 11:44:07 -0500 Subject: [PATCH] when holding Shift for the client list menus, bring the selected client to the current desktop (Request #4284) --- openbox/client_list_combined_menu.c | 6 ++++-- openbox/client_list_menu.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/openbox/client_list_combined_menu.c b/openbox/client_list_combined_menu.c index 593010eb..5b79b806 100644 --- a/openbox/client_list_combined_menu.c +++ b/openbox/client_list_combined_menu.c @@ -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 diff --git a/openbox/client_list_menu.c b/openbox/client_list_menu.c index 2e87259b..c49e63e9 100644 --- a/openbox/client_list_menu.c +++ b/openbox/client_list_menu.c @@ -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 -- 2.39.2