summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-10-29 16:16:02 +1000
committerDave Airlie <airlied@linux.ie>2010-10-31 12:27:38 +1000
commit36ede5034dbc2709548eedd9f31b7454ee020c45 (patch)
tree76ed7bbee336a757c8928284c78413e53f525352
parent438c68ecd3521725f11fc83bb4b3e340f47c0a6d (diff)
fix window list
-rw-r--r--Xext/panoramiX.c1
-rw-r--r--dix/window.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 75dedf369..755f83d95 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -1182,6 +1182,7 @@ XineramaDoMigrateScreen(void)
InitRootWindow(screenInfo.screens[1]->root);
WalkTree(screenInfo.screens[0], mywalker, NULL);
+ screenInfo.numScreens++;
for (i = currentMaxClients; --i >= 0; )
{
// FindClientResourcesByType(clients[i], XRT_WINDOW, print_xrt, clients[i]);
diff --git a/dix/window.c b/dix/window.c
index 849fcc889..6cc9702be 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -555,6 +555,17 @@ DuplicateWindow(Window wid, WindowPtr pParent, WindowPtr pSrc)
pWin->drawable.id = wid;
pWin->parent = pParent;
+ pWin->nextSib = NULL;
+ pWin->prevSib = NULL;
+ pWin->firstChild = NULL;
+ pWin->lastChild = NULL;
+ pWin->nextSib = pParent->firstChild;
+ if (pParent->firstChild)
+ pParent->firstChild->prevSib = pWin;
+ else
+ pParent->lastChild = pWin;
+ pParent->firstChild = pWin;
+
if (!(*pScreen->CreateWindow)(pWin))
{
DeleteWindow(pWin, None);