diff options
author | marha <marha@users.sourceforge.net> | 2010-08-20 07:50:24 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2010-08-20 07:50:24 +0000 |
commit | 3799f1085abb02c5721f4c33f42c063edb68029d (patch) | |
tree | 8a7f504e9bd1099a8508d4ffe2eda47ad9f5c452 /xorg-server/miext/rootless/rootlessWindow.c | |
parent | 07d3578ce63d87c9a87d54d85f5c8057d30fdc58 (diff) | |
parent | 0ef233ddca61b9f3c72aa5f806ee818348f3aa20 (diff) | |
download | vcxsrv-3799f1085abb02c5721f4c33f42c063edb68029d.tar.gz vcxsrv-3799f1085abb02c5721f4c33f42c063edb68029d.tar.bz2 vcxsrv-3799f1085abb02c5721f4c33f42c063edb68029d.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/miext/rootless/rootlessWindow.c')
-rw-r--r-- | xorg-server/miext/rootless/rootlessWindow.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/xorg-server/miext/rootless/rootlessWindow.c b/xorg-server/miext/rootless/rootlessWindow.c index 8967602d5..a9cecd2e3 100644 --- a/xorg-server/miext/rootless/rootlessWindow.c +++ b/xorg-server/miext/rootless/rootlessWindow.c @@ -587,10 +587,15 @@ RootlessReorderWindow(WindowPtr pWin) RootlessStopDrawing(pWin, FALSE);
- /* Find the next window above this one that has a mapped frame. */
+ /* Find the next window above this one that has a mapped frame.
+ * Only include cases where the windows are in the same category of
+ * hittability to ensure offscreen windows dont get restacked
+ * relative to onscreen ones (but that the offscreen ones maintain
+ * their stacking order if they are explicitly asked to Reorder
+ */
newPrevW = pWin->prevSib;
- while (newPrevW && (WINREC(newPrevW) == NULL || !newPrevW->realized))
+ while (newPrevW && (WINREC(newPrevW) == NULL || !newPrevW->realized || newPrevW->rootlessUnhittable != pWin->rootlessUnhittable))
newPrevW = newPrevW->prevSib;
newPrev = newPrevW != NULL ? WINREC(newPrevW) : NULL;
@@ -1508,7 +1513,7 @@ RootlessChangeBorderWidth(WindowPtr pWin, unsigned int width) * (i.e in front of Aqua windows) -- called when X11.app is given focus
*/
void
-RootlessOrderAllWindows (void)
+RootlessOrderAllWindows (Bool include_unhitable)
{
int i;
WindowPtr pWin;
@@ -1525,6 +1530,7 @@ RootlessOrderAllWindows (void) for (pWin = pWin->firstChild; pWin != NULL; pWin = pWin->nextSib) {
if (!pWin->realized) continue;
if (RootlessEnsureFrame(pWin) == NULL) continue;
+ if (!include_unhitable && pWin->rootlessUnhittable) continue;
RootlessReorderWindow (pWin);
}
}
|