check desktop switching stuff in screen_set_desktop
This commit is contained in:
parent
336011efb1
commit
ddd2a4da21
2 changed files with 12 additions and 6 deletions
|
@ -1588,7 +1588,7 @@ void action_send_to_desktop(union ActionData *data)
|
||||||
data->sendto.desk == DESKTOP_ALL) {
|
data->sendto.desk == DESKTOP_ALL) {
|
||||||
client_set_desktop(c, data->sendto.desk, data->sendto.follow);
|
client_set_desktop(c, data->sendto.desk, data->sendto.follow);
|
||||||
if (data->sendto.follow && data->sendto.desk != screen_desktop)
|
if (data->sendto.follow && data->sendto.desk != screen_desktop)
|
||||||
screen_set_desktop(data->sendto.desk, c != focus_client);
|
screen_set_desktop(data->sendto.desk, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1599,9 +1599,10 @@ void action_desktop(union ActionData *data)
|
||||||
if (data->desktop.desk < screen_num_desktops ||
|
if (data->desktop.desk < screen_num_desktops ||
|
||||||
data->desktop.desk == DESKTOP_ALL)
|
data->desktop.desk == DESKTOP_ALL)
|
||||||
{
|
{
|
||||||
screen_set_desktop(data->desktop.desk, TRUE);
|
screen_set_desktop(data->desktop.desk, !focus_client
|
||||||
|
|| focus->client.desktop != DESKTOP_ALL);
|
||||||
if (data->inter.any.interactive)
|
if (data->inter.any.interactive)
|
||||||
screen_desktop_popup(data->desktop.desk, focus_client->desktop != DESKTOP_ALL);
|
screen_desktop_popup(data->desktop.desk, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1621,7 +1622,8 @@ void action_desktop_dir(union ActionData *data)
|
||||||
if (!data->sendtodir.inter.any.interactive ||
|
if (!data->sendtodir.inter.any.interactive ||
|
||||||
(data->sendtodir.inter.final && !data->sendtodir.inter.cancel))
|
(data->sendtodir.inter.final && !data->sendtodir.inter.cancel))
|
||||||
{
|
{
|
||||||
if (d != screen_desktop) screen_set_desktop(d, focus_client->desktop != DESKTOP_ALL);
|
if (d != screen_desktop)
|
||||||
|
screen_set_desktop(d, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1645,7 +1647,7 @@ void action_send_to_desktop_dir(union ActionData *data)
|
||||||
{
|
{
|
||||||
client_set_desktop(c, d, data->sendtodir.follow);
|
client_set_desktop(c, d, data->sendtodir.follow);
|
||||||
if (data->sendtodir.follow && d != screen_desktop)
|
if (data->sendtodir.follow && d != screen_desktop)
|
||||||
screen_set_desktop(d, c != focus_client);
|
screen_set_desktop(d, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -536,7 +536,11 @@ void screen_set_desktop(guint num, gboolean dofocus)
|
||||||
do this before hiding the windows so if helper windows are coming
|
do this before hiding the windows so if helper windows are coming
|
||||||
with us, they don't get hidden
|
with us, they don't get hidden
|
||||||
*/
|
*/
|
||||||
if (dofocus && (c = focus_fallback(TRUE))) {
|
if (dofocus
|
||||||
|
&& (!focus_client || (focus->client.desktop != DESKTOP_ALL
|
||||||
|
&& focus->client.desktop != num))
|
||||||
|
&& (c = focus_fallback(TRUE)))
|
||||||
|
{
|
||||||
/* only do the flicker reducing stuff ahead of time if we are going
|
/* only do the flicker reducing stuff ahead of time if we are going
|
||||||
to call xsetinputfocus on the window ourselves. otherwise there is
|
to call xsetinputfocus on the window ourselves. otherwise there is
|
||||||
no guarantee the window will actually take focus.. */
|
no guarantee the window will actually take focus.. */
|
||||||
|
|
Loading…
Reference in a new issue