On Mon, Aug 16, 2010 at 1:54 PM, Keith Packard <[email protected]> wrote: > 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?
Indeed, I bow to your superior X internals knowledge. Reviewed-by: Dave Airlie <[email protected]> > > 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] > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
