On Mon, 16 Aug 2010 12:21:15 +1000, Dave Airlie <[email protected]> wrote:
> diff --git a/dix/window.c b/dix/window.c
> index 4a47dd5..33ef943 100644
> --- a/dix/window.c
> +++ b/dix/window.c
> @@ -895,10 +895,15 @@ DeleteWindow(pointer value, XID wid)
> WindowPtr pParent;
> WindowPtr pWin = (WindowPtr)value;
> xEvent event;
> + ScreenPtr pScreen;
> +
> + pScreen = pWin->drawable.pScreen;
>
> UnmapWindow(pWin, FALSE);
>
> CrushTree(pWin);
> + if (pWin == pScreen->root)
> + pScreen->root = NULL;
>
> pParent = pWin->parent;
> if (wid && pParent && SubStrSend(pWin, pParent))
> --
> 1.7.2.1
Or perhaps this one instead?
diff --git a/dix/window.c b/dix/window.c
index 4a47dd5..1913030 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -921,6 +921,8 @@ DeleteWindow(pointer value, XID wid)
if (pWin->prevSib)
pWin->prevSib->nextSib = pWin->nextSib;
}
+ else
+ pWin->drawable.pScreen->root = NULL;
dixFreeObjectWithPrivates(pWin, PRIVATE_WINDOW);
return Success;
}
--
[email protected]
pgpjl8PLYQ9TQ.pgp
Description: PGP signature
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
