all repos — openbox @ 7ac0b9196585654327a6a5967c1f55561722a401

openbox fork - make it a bit more like ryudo

when holding Shift for the client list menus, bring the selected client to the current desktop (Request #4284)
Dana Jansens danakj@orodu.net
commit

7ac0b9196585654327a6a5967c1f55561722a401

parent

ce24cbd045b2a93a04c5cd258137ab8572f2c429

2 files changed, 8 insertions(+), 4 deletions(-)

jump to
M openbox/client_list_combined_menu.copenbox/client_list_combined_menu.c

@@ -114,10 +114,12 @@ }

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
M openbox/client_list_menu.copenbox/client_list_menu.c

@@ -101,10 +101,12 @@ ObClient *c, guint state, gpointer data)

{ 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