properly search for a focused window in the transient tree

This commit is contained in:
Dana Jansens 2007-05-28 02:02:13 +00:00
parent 30912d467a
commit e9f6255b18

View file

@ -2355,21 +2355,19 @@ ObClient *client_search_focus_tree_full(ObClient *self)
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;