let transients take focus when anything in the transient tree _or the group_ is focused
This commit is contained in:
parent
15fb1bde54
commit
7a13f91875
1 changed files with 12 additions and 13 deletions
|
@ -2367,22 +2367,21 @@ ObClient *client_search_focus_tree(ObClient *self)
|
||||||
|
|
||||||
ObClient *client_search_focus_tree_full(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;
|
GSList *it;
|
||||||
|
ObClient *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)) {
|
for (it = self->group->members; it; it = g_slist_next(it)) {
|
||||||
if (it->data != self) {
|
if (it->data != self) {
|
||||||
ObClient *c = it->data;
|
c = it->data;
|
||||||
|
|
||||||
if (client_focused(c)) return c;
|
if (client_focused(c)) return c;
|
||||||
if ((c = client_search_focus_tree(it->data))) return c;
|
if ((c = client_search_focus_tree(it->data))) return c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 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 */
|
does not, so we need to check this window */
|
||||||
|
|
Loading…
Reference in a new issue