all repos — openbox @ e9f6255b187e9f9283a3d3e3533a6995a77749e3

openbox fork - make it a bit more like ryudo

properly search for a focused window in the transient tree
Dana Jansens danakj@orodu.net
commit

e9f6255b187e9f9283a3d3e3533a6995a77749e3

parent

30912d467a36b13c0d04c98a0bf8ec1b8c1cc593

1 files changed, 8 insertions(+), 10 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -2355,21 +2355,19 @@ if (self->transient_for != OB_TRAN_GROUP) {

return client_search_focus_tree_full(self->transient_for); } else { GSList *it; - gboolean recursed = FALSE; - for (it = self->group->members; it; it = g_slist_next(it)) - if (!((ObClient*)it->data)->transient_for) { - ObClient *c; - if ((c = client_search_focus_tree_full(it->data))) - return c; - recursed = TRUE; + for (it = self->group->members; it; it = g_slist_next(it)) { + if (it->data != self) { + ObClient *c = it->data; + + if (client_focused(c)) return c; + if ((c = client_search_focus_tree(it->data))) return c; } - if (recursed) - return NULL; + } } } - /* this function checks the whole tree, the client_search_focus_tree~ + /* this function checks the whole tree, the client_search_focus_tree does not, so we need to check this window */ if (client_focused(self)) return self;