From: Dana Jansens Date: Tue, 6 Aug 2002 22:21:12 +0000 (+0000) Subject: perhaps fix a segfault here X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=00391787e32111fa5c9de606b5edf595846e7513;p=chaz%2Fopenbox perhaps fix a segfault here --- diff --git a/src/Workspace.cc b/src/Workspace.cc index 4f84cfa7..85f9cdca 100644 --- a/src/Workspace.cc +++ b/src/Workspace.cc @@ -237,12 +237,13 @@ void Workspace::showAll(void) { void Workspace::hideAll(void) { // withdraw in reverse order to minimize the number of Expose events - BlackboxWindowList::reverse_iterator it = stackingList.rbegin(); - const BlackboxWindowList::reverse_iterator end = stackingList.rend(); - while (it != end) { + + BlackboxWindowList lst(stackingList.rbegin(), stackingList.rend()); + + BlackboxWindowList::iterator it = lst.begin(); + const BlackboxWindowList::iterator end = lst.end(); + for (; it != end; ++it) { BlackboxWindow *bw = *it; - ++it; // withdraw removes the current item from the list so we need the next - // iterator before that happens // not normal windows cant focus from mouse enters anyways, so we dont // need to unmap/remap them on workspace changes if (! bw->isStuck() || bw->isNormal()) diff --git a/src/blackbox.cc b/src/blackbox.cc index 0e03e178..04e68bb1 100644 --- a/src/blackbox.cc +++ b/src/blackbox.cc @@ -712,7 +712,7 @@ void Blackbox::process_event(XEvent *e) { BScreen *screen = win->getScreen(); if (win->isIconic()) - win->deiconify(False, True); + win->deiconify(False, False); if (! win->isStuck() && (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID())) screen->changeWorkspaceID(win->getWorkspaceNumber());