when holding Shift for the client list menus, bring the selected client to the current desktop (Request #4284)
This commit is contained in:
parent
ce24cbd045
commit
7ac0b91965
2 changed files with 8 additions and 4 deletions
|
@ -114,10 +114,12 @@ static void menu_execute(ObMenuEntry *self, ObMenuFrame *f,
|
||||||
else {
|
else {
|
||||||
ObClient *t = self->data.normal.data;
|
ObClient *t = self->data.normal.data;
|
||||||
if (t) { /* it's set to NULL if its destroyed */
|
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
|
/* if the window is omnipresent then we need to go to its
|
||||||
desktop */
|
desktop */
|
||||||
if (t->desktop == DESKTOP_ALL)
|
if (!here && t->desktop == DESKTOP_ALL)
|
||||||
screen_set_desktop(self->id, FALSE);
|
screen_set_desktop(self->id, FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -101,10 +101,12 @@ static void desk_menu_execute(ObMenuEntry *self, ObMenuFrame *f,
|
||||||
{
|
{
|
||||||
ObClient *t = self->data.normal.data;
|
ObClient *t = self->data.normal.data;
|
||||||
if (t) { /* it's set to NULL if its destroyed */
|
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
|
/* if the window is omnipresent then we need to go to its
|
||||||
desktop */
|
desktop */
|
||||||
if (t->desktop == DESKTOP_ALL)
|
if (!here && t->desktop == DESKTOP_ALL)
|
||||||
screen_set_desktop(self->id, FALSE);
|
screen_set_desktop(self->id, FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue