was not moving the window between desktop focus lists sometimes. bad news. now i always do. yay!
This commit is contained in:
parent
4bd182605c
commit
b749cd5ec4
1 changed files with 10 additions and 9 deletions
|
@ -1730,19 +1730,20 @@ void client_set_desktop(Client *self, guint target, gboolean donthide)
|
||||||
if (old == DESKTOP_ALL) {
|
if (old == DESKTOP_ALL) {
|
||||||
for (i = 0; i < screen_num_desktops; ++i)
|
for (i = 0; i < screen_num_desktops; ++i)
|
||||||
focus_order[i] = g_list_remove(focus_order[i], self);
|
focus_order[i] = g_list_remove(focus_order[i], self);
|
||||||
|
} else
|
||||||
|
focus_order[old] = g_list_remove(focus_order[old], self);
|
||||||
|
if (target == DESKTOP_ALL) {
|
||||||
|
for (i = 0; i < screen_num_desktops; ++i) {
|
||||||
|
if (focus_new.bool)
|
||||||
|
focus_order[i] = g_list_prepend(focus_order[i], self);
|
||||||
|
else
|
||||||
|
focus_order[i] = g_list_append(focus_order[i], self);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (focus_new.bool)
|
if (focus_new.bool)
|
||||||
focus_order[target] = g_list_prepend(focus_order[target], self);
|
focus_order[target] = g_list_prepend(focus_order[target], self);
|
||||||
else
|
else
|
||||||
focus_order[target] = g_list_append(focus_order[target], self);
|
focus_order[target] = g_list_append(focus_order[target], self);
|
||||||
} else {
|
|
||||||
focus_order[old] = g_list_remove(focus_order[old], self);
|
|
||||||
if (target == DESKTOP_ALL)
|
|
||||||
for (i = 0; i < screen_num_desktops; ++i) {
|
|
||||||
if (focus_new.bool)
|
|
||||||
focus_order[i] = g_list_prepend(focus_order[i], self);
|
|
||||||
else
|
|
||||||
focus_order[i] = g_list_append(focus_order[i], self);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dispatch_client(Event_Client_Desktop, self, target, old);
|
dispatch_client(Event_Client_Desktop, self, target, old);
|
||||||
|
|
Loading…
Reference in a new issue