diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-06 14:23:56 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-06 14:23:56 +0000 |
| commit | 7a13f918758f5426d1115b7992bbb4bd7be17c0b (patch) | |
| tree | d874c1a75abab70f86cb6d327b76101e1c04380d /openbox/client.c | |
| parent | 15fb1bde546d14a65cc5ec871b796f45e964172e (diff) | |
let transients take focus when anything in the transient tree _or the group_ is focused
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/openbox/client.c b/openbox/client.c index 4cfece1d..5aa9ba74 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -2367,20 +2367,19 @@ ObClient *client_search_focus_tree(ObClient *self) ObClient *client_search_focus_tree_full(ObClient *self) { - if (self->transient_for) { - if (self->transient_for != OB_TRAN_GROUP) { - return client_search_focus_tree_full(self->transient_for); - } else { - GSList *it; - - for (it = self->group->members; it; it = g_slist_next(it)) { - if (it->data != self) { - ObClient *c = it->data; + GSList *it; + ObClient *c; - if (client_focused(c)) return c; - if ((c = client_search_focus_tree(it->data))) return c; - } - } + if (self->transient_for && self->transient_for != OB_TRAN_GROUP) { + if ((c = client_search_focus_tree_full(self->transient_for))) + return c; + } + + for (it = self->group->members; it; it = g_slist_next(it)) { + if (it->data != self) { + c = it->data; + if (client_focused(c)) return c; + if ((c = client_search_focus_tree(it->data))) return c; } } |
