when holding Shift for the client list menus, bring the selected client to the current desktop (Request #4284)

This commit is contained in:
Dana Jansens 2009-12-22 11:44:07 -05:00
parent ce24cbd045
commit 7ac0b91965
2 changed files with 8 additions and 4 deletions

View 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

View 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