From 4c03637fd1cd5273a030abe38dfffa65c67fd420 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 23 Jul 2002 01:05:31 +0000 Subject: [PATCH] modal transients wouldnt throw their focus up to their arent cuz the parent didnt know the modal dialog was gone yet and would pass it back to them. --- src/Screen.cc | 9 --------- src/Window.cc | 11 ++++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Screen.cc b/src/Screen.cc index d92973b3..86d425d7 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -1245,12 +1245,6 @@ void BScreen::manageWindow(Window w) { void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) { w->restore(remap); - if (w->getWorkspaceNumber() != BSENTINEL && - w->getWindowNumber() != BSENTINEL) - getWorkspace(w->getWorkspaceNumber())->removeWindow(w); - else if (w->isIconic()) - removeIcon(w); - if (w->isNormal()) { // we don't list non-normal windows as managed windows windowList.remove(w); @@ -1266,9 +1260,6 @@ void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) { assert(it != end); // the window wasnt a desktop window? } - if (blackbox->getFocusedWindow() == w) - blackbox->setFocusedWindow((BlackboxWindow *) 0); - removeNetizen(w->getClientWindow()); /* diff --git a/src/Window.cc b/src/Window.cc index bd2f0c06..722409f9 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -361,9 +361,18 @@ BlackboxWindow::~BlackboxWindow(void) { if (client.transient_for != (BlackboxWindow *) ~0ul) { client.transient_for->client.transientList.remove(this); } - client.transient_for = (BlackboxWindow*) 0; + // we save our transient_for though because the workspace will use it + // when determining the next window to get focus } + if (blackbox_attrib.workspace != BSENTINEL && + window_number != BSENTINEL) + screen->getWorkspace(blackbox_attrib.workspace)->removeWindow(this); + else if (flags.iconic) + screen->removeIcon(this); + + client.transient_for = (BlackboxWindow*) 0; + if (client.transientList.size() > 0) { // reset transient_for for all transients BlackboxWindowList::iterator it, end = client.transientList.end(); -- 2.45.2