diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-29 06:21:31 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-29 06:21:31 +0000 |
| commit | 77c518f8088dfae042f96f4f6424232e6400de40 (patch) | |
| tree | 7b09e9a2d8aa0a1afca03bbf9c1c2952a7d6b44c /src/Window.cc | |
| parent | f61a455ec1704d305d8643b8215c8e0647f4c869 (diff) | |
better sticky windows.
Diffstat (limited to 'src/Window.cc')
| -rw-r--r-- | src/Window.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/Window.cc b/src/Window.cc index 14505a36..4b8efc8c 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -1540,8 +1540,7 @@ void BlackboxWindow::configureShape(void) { bool BlackboxWindow::setInputFocus(void) { if (flags.focused) return True; - assert(! flags.iconic && - (flags.stuck || // window must be on the current workspace or sticky + assert((flags.stuck || // window must be on the current workspace or sticky blackbox_attrib.workspace == screen->getCurrentWorkspaceID())); /* @@ -1631,6 +1630,11 @@ void BlackboxWindow::iconify(void) { setState(IconicState); screen->getWorkspace(blackbox_attrib.workspace)->removeWindow(this); + if (flags.stuck) { + for (unsigned int i = 0; i < screen->getNumberOfWorkspaces(); ++i) + if (i != blackbox_attrib.workspace) + screen->getWorkspace(i)->removeWindow(this, True); + } if (isTransient()) { if (client.transient_for != (BlackboxWindow *) ~0ul && @@ -1935,10 +1939,6 @@ void BlackboxWindow::stick(void) { blackbox_attrib.flags ^= AttribOmnipresent; blackbox_attrib.attrib ^= AttribOmnipresent; - for (unsigned int i = 0; i < screen->getNumberOfWorkspaces(); ++i) - if (i != blackbox_attrib.workspace) - screen->getWorkspace(i)->removeWindow(this, True); - flags.stuck = False; if (! flags.iconic) |
