diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-02-03 08:51:44 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-02-03 08:51:44 +0000 |
| commit | 6cc8d62e2674bd8bcb0d83935337523ca486098f (patch) | |
| tree | 1e2458b032a501e231ebb2eb11961fd65d7be0e9 /src/client.cc | |
| parent | d64505cfe29a433d09fba8ee74372181c04cfad7 (diff) | |
find modal children and focus them
Diffstat (limited to 'src/client.cc')
| -rw-r--r-- | src/client.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/client.cc b/src/client.cc index 296e2e52..2f8cfe8d 100644 --- a/src/client.cc +++ b/src/client.cc @@ -1550,7 +1550,15 @@ void Client::disableDecorations(DecorationFlags flags) bool Client::focusModalChild() { - // XXX: find a modal child recursively and try focus it + // find a modal child recursively and try focus it + List::iterator it, end = _transients.end(); + for (it = _transients.begin(); it != end; ++it) + if ((*it)->focusModalChild()) + return true; // got one + // none of our grand-children are modal, try our direct children + for (it = _transients.begin(); it != end; ++it) + if ((*it)->modal() && (*it)->focus()) + return true; // got one return false; } |
