summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-28 08:23:18 +0000
committerDana Jansens <danakj@orodu.net>2003-03-28 08:23:18 +0000
commitb749cd5ec47040c4568beac5ad5121c05b4bcf61 (patch)
tree7d5c728350590d3319917c74dbd79bf186d7d34f /openbox/client.c
parent4bd182605c8f1d08c83fdb09cc7ffb4d3690b50d (diff)
was not moving the window between desktop focus lists sometimes. bad news. now i always do. yay!
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 278ee38e..209f5f96 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -1730,19 +1730,20 @@ void client_set_desktop(Client *self, guint target, gboolean donthide)
if (old == DESKTOP_ALL) {
for (i = 0; i < screen_num_desktops; ++i)
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)
focus_order[target] = g_list_prepend(focus_order[target], self);
else
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);