diff --git a/miext/rootless/rootlessCommon.h b/miext/rootless/rootlessCommon.h index 40400b395..1e236bb9d 100644 --- a/miext/rootless/rootlessCommon.h +++ b/miext/rootless/rootlessCommon.h @@ -84,7 +84,6 @@ typedef struct _RootlessScreenRec { CloseScreenProcPtr CloseScreen; CreateWindowProcPtr CreateWindow; - DestroyWindowProcPtr DestroyWindow; RealizeWindowProcPtr RealizeWindow; UnrealizeWindowProcPtr UnrealizeWindow; MoveWindowProcPtr MoveWindow; diff --git a/miext/rootless/rootlessScreen.c b/miext/rootless/rootlessScreen.c index ddb1cf607..224d36d73 100644 --- a/miext/rootless/rootlessScreen.c +++ b/miext/rootless/rootlessScreen.c @@ -649,6 +649,8 @@ RootlessWrap(ScreenPtr pScreen) { RootlessScreenRec *s = SCREENREC(pScreen); + dixScreenHookWindowDestroy(pScreen, RootlessWindowDestroy); + #define WRAP(a) \ if (pScreen->a) { \ s->a = pScreen->a; \ @@ -666,7 +668,6 @@ RootlessWrap(ScreenPtr pScreen) WRAP(GetImage); WRAP(SourceValidate); WRAP(CreateWindow); - WRAP(DestroyWindow); WRAP(RealizeWindow); WRAP(UnrealizeWindow); WRAP(MoveWindow); diff --git a/miext/rootless/rootlessWindow.c b/miext/rootless/rootlessWindow.c index f1cdec307..afa14e3f0 100644 --- a/miext/rootless/rootlessWindow.c +++ b/miext/rootless/rootlessWindow.c @@ -189,24 +189,14 @@ RootlessDestroyFrame(WindowPtr pWin, RootlessWindowPtr winRec) } /* - * RootlessDestroyWindow - * Destroy the physical window associated with the given window. + * @brief window destructor: remove physical window associated with given window */ -Bool -RootlessDestroyWindow(WindowPtr pWin) +void +RootlessWindowDestroy(CallbackListPtr *pcbl, ScreenPtr pScreen, WindowPtr pWin) { RootlessWindowRec *winRec = WINREC(pWin); - Bool result; - - if (winRec != NULL) { + if (winRec != NULL) RootlessDestroyFrame(pWin, winRec); - } - - SCREEN_UNWRAP(pWin->drawable.pScreen, DestroyWindow); - result = pWin->drawable.pScreen->DestroyWindow(pWin); - SCREEN_WRAP(pWin->drawable.pScreen, DestroyWindow); - - return result; } static Bool diff --git a/miext/rootless/rootlessWindow.h b/miext/rootless/rootlessWindow.h index 4fd34d54d..253206505 100644 --- a/miext/rootless/rootlessWindow.h +++ b/miext/rootless/rootlessWindow.h @@ -37,7 +37,7 @@ #include "rootlessCommon.h" Bool RootlessCreateWindow(WindowPtr pWin); -Bool RootlessDestroyWindow(WindowPtr pWin); +void RootlessWindowDestroy(CallbackListPtr *pcbl, ScreenPtr pScreen, WindowPtr pWin, void *arg); void RootlessSetShape(WindowPtr pWin, int kind);