summaryrefslogtreecommitdiff
path: root/openbox/focus_cycle.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-28 00:33:58 +0000
committerDana Jansens <danakj@orodu.net>2007-05-28 00:33:58 +0000
commit16fcb1213d4ccfccd4e4a8ad5e8b0c826dc5c16e (patch)
tree2cbd77bce08fa774a36b65070643a835e9178e97 /openbox/focus_cycle.c
parent8874ec1fc4a142ea67d7c5a45ae9ea92ffdec5ea (diff)
when you focus a window, bring any modal children it has to that desktop
when falling back, return the window which actually was focused by client_focus let you focus cycle to windows when their modal window is on another desktop (it will be brought over)
Diffstat (limited to 'openbox/focus_cycle.c')
-rw-r--r--openbox/focus_cycle.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c
index 46f5f058..74cabac6 100644
--- a/openbox/focus_cycle.c
+++ b/openbox/focus_cycle.c
@@ -150,7 +150,11 @@ gboolean focus_cycle_target_valid(ObClient *ft,
!ft->skip_taskbar);
/* it's not going to just send fous off somewhere else (modal window) */
- ok = ok && ft == client_focus_target(ft);
+ {
+ ObClient *cft = client_focus_target(ft);
+ ok = ok && (ft == cft || (cft->desktop != DESKTOP_ALL &&
+ cft->desktop != ft->desktop));
+ }
return ok;
}