From: Scott Moynes Date: Sun, 18 May 2003 17:49:17 +0000 (+0000) Subject: this is actually xor :) - fixing the focus search function to not return NULL if... X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=d8921eb3d2279af3dfc8f8ff4e32509bde4a3b54;p=chaz%2Fopenbox this is actually xor :) - fixing the focus search function to not return NULL if no valid group members exist to be a transient for --- diff --git a/openbox/client.c b/openbox/client.c index 200131e7..0e5a59f0 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -1402,22 +1402,25 @@ Client *client_search_focus_tree_full(Client *self) return client_search_focus_tree_full(self->transient_for); } else { GSList *it; + gboolean recursed = FALSE; for (it = self->group->members; it; it = it->next) if (!((Client*)it->data)->transient_for) { Client *c; if ((c = client_search_focus_tree_full(it->data))) return c; + recursed = TRUE; } - return NULL; + if (recursed) + return NULL; } - } else { - /* 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; - return client_search_focus_tree(self); } + + /* 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; + return client_search_focus_tree(self); } static StackLayer calc_layer(Client *self)