summaryrefslogtreecommitdiff
path: root/openbox/focus.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-03-11 16:58:19 +0000
committerDana Jansens <danakj@orodu.net>2007-03-11 16:58:19 +0000
commit62a39c4c70b0ed8e153b0cccac853cc6fded99ba (patch)
tree6cd8ffb1fd1ff5d2013aa78f712a0176c1ac6123 /openbox/focus.c
parent1ff3c1dd9d99be6fd4b78e7ea594c1e19bcf39ae (diff)
stacking has been made more reliable with groups and group transients.
this was a pretty invasive change in client.c though, so it may break things? it did expose some bugginess in client_calc_layer, which is now better than ever, hopefully there isn't more to be found.
Diffstat (limited to 'openbox/focus.c')
-rw-r--r--openbox/focus.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index 2d6804bc..73cb6f52 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -260,11 +260,15 @@ ObClient* focus_fallback_target(ObFocusFallbackType type)
if (!config_focus_follow || config_focus_last)
trans = TRUE;
else {
- if ((target = client_under_pointer()) &&
- client_search_transient
- (client_search_top_transient(target), old))
- {
- trans = TRUE;
+ if ((target = client_under_pointer())) {
+ GSList *sit;
+
+ sit = client_search_top_transients(target);
+ for (; sit; sit = g_slist_next(sit))
+ if (client_search_transient(sit->data, old)) {
+ trans = TRUE;
+ break;
+ }
}
}