From 77c518f8088dfae042f96f4f6424232e6400de40 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 29 Jul 2002 06:21:31 +0000 Subject: better sticky windows. --- src/Window.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/Window.cc') 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) -- cgit v1.2.3