summaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-29 06:21:31 +0000
committerDana Jansens <danakj@orodu.net>2002-07-29 06:21:31 +0000
commit77c518f8088dfae042f96f4f6424232e6400de40 (patch)
tree7b09e9a2d8aa0a1afca03bbf9c1c2952a7d6b44c /src/Window.cc
parentf61a455ec1704d305d8643b8215c8e0647f4c869 (diff)
better sticky windows.
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc12
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)