diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-05 01:24:32 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-05 01:24:32 +0000 |
| commit | e15e4a9e03dd7b64004b76ca84b07c12c251f67b (patch) | |
| tree | d582a21b04ffdbac8935395da9f30c8230f5f1dd /src/Workspace.cc | |
| parent | be2f47223c17c399e05436a34ba4140f2fc44fc9 (diff) | |
make iconified windows uniconify on an XMapRequestEvent.
sync with blackbox cvs.
Diffstat (limited to 'src/Workspace.cc')
| -rw-r--r-- | src/Workspace.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/Workspace.cc b/src/Workspace.cc index 60efba1e..90a83b26 100644 --- a/src/Workspace.cc +++ b/src/Workspace.cc @@ -103,8 +103,13 @@ unsigned int Workspace::removeWindow(BlackboxWindow *w) { if ((w->isFocused() || w == lastfocus) && ! screen->getBlackbox()->doShutdown()) { BlackboxWindow *newfocus = 0; - if (w->isTransient()) + if (w->isTransient()) { newfocus = w->getTransientFor(); + if (newfocus && + (newfocus->isIconic() || // do not focus icons + newfocus->getWorkspaceNumber() != id)) // or other workspaces + newfocus = 0; + } if (! newfocus && ! stackingList.empty()) newfocus = stackingList.front(); @@ -115,7 +120,7 @@ unsigned int Workspace::removeWindow(BlackboxWindow *w) { if the window is on the visible workspace, then try focus it, and fall back to the default focus target if the window won't focus. */ - if (! newfocus || ! newfocus->setInputFocus()) + if (! (newfocus && newfocus->setInputFocus())) screen->getBlackbox()->setFocusedWindow(0); } else if (lastfocus == w) { /* @@ -320,12 +325,6 @@ void Workspace::reconfigure(void) { } -void Workspace::updateFocusModel(void) { - std::for_each(windowList.begin(), windowList.end(), - std::mem_fun(&BlackboxWindow::updateFocusModel)); -} - - BlackboxWindow *Workspace::getWindow(unsigned int index) { if (index < windowList.size()) { BlackboxWindowList::iterator it = windowList.begin(); |
