summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorErkin Bahceci <erkinbah@gmail.com>2009-08-12 22:03:59 -0500
committerErkin Bahceci <erkinbah@gmail.com>2009-08-12 22:03:59 -0500
commita90dae8646f98e52a797a840280c1381a5d85027 (patch)
treeefe16e556f93a37bbbb1c5525808ead235870c54 /src
parent7190cb5530452c1cfe6546c301203f2b5f59fbff (diff)
downloadzcomp-a90dae8646f98e52a797a840280c1381a5d85027.tar.gz
zcomp-a90dae8646f98e52a797a840280c1381a5d85027.tar.bz2
Fix possible infinite loop.
Diffstat (limited to 'src')
-rw-r--r--src/window.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 2978a8f..408a7f7 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -2951,9 +2951,15 @@ PrivateWindow::addWindowStackChanges (XWindowChanges *xwc,
if (dw == sibling)
break;
+ /* Collect all dock windows first */
+ CompWindowList dockWindows;
for (; dw; dw = dw->prev)
if (dw->priv->type & CompWindowTypeDockMask)
- dw->configureXWindow (mask, xwc);
+ dockWindows.push_back (dw);
+
+ /* Then update the dock windows */
+ foreach (CompWindow *dw, dockWindows)
+ dw->configureXWindow (mask, xwc);
}
}