diff --git a/render/animcur.c b/render/animcur.c index f906cd813..ec9fc238b 100644 --- a/render/animcur.c +++ b/render/animcur.c @@ -60,7 +60,6 @@ typedef struct _AnimCur { } AnimCurRec, *AnimCurPtr; typedef struct _AnimScrPriv { - CloseScreenProcPtr CloseScreen; CursorLimitsProcPtr CursorLimits; DisplayCursorProcPtr DisplayCursor; SetCursorPositionProcPtr SetCursorPosition; @@ -84,13 +83,11 @@ static DevPrivateKeyRec AnimCurScreenPrivateKeyRec; #define Wrap(as,s,elt,func) (((as)->elt = (s)->elt), (s)->elt = func) #define Unwrap(as,s,elt) ((s)->elt = (as)->elt) -static Bool -AnimCurCloseScreen(ScreenPtr pScreen) +static void AnimCurScreenClose(CallbackListPtr *pcbl, ScreenPtr pScreen, void *unused) { AnimCurScreenPtr as = GetAnimCurScreen(pScreen); - Bool ret; - Unwrap(as, pScreen, CloseScreen); + dixScreenUnhookClose(pScreen, AnimCurScreenClose); Unwrap(as, pScreen, CursorLimits); Unwrap(as, pScreen, DisplayCursor); @@ -98,8 +95,6 @@ AnimCurCloseScreen(ScreenPtr pScreen) Unwrap(as, pScreen, RealizeCursor); Unwrap(as, pScreen, UnrealizeCursor); Unwrap(as, pScreen, RecolorCursor); - ret = (*pScreen->CloseScreen) (pScreen); - return ret; } static void @@ -286,7 +281,7 @@ AnimCurInit(ScreenPtr pScreen) as = GetAnimCurScreen(pScreen); - Wrap(as, pScreen, CloseScreen, AnimCurCloseScreen); + dixScreenHookClose(pScreen, AnimCurScreenClose); Wrap(as, pScreen, CursorLimits, AnimCurCursorLimits); Wrap(as, pScreen, DisplayCursor, AnimCurDisplayCursor); diff --git a/render/picture.c b/render/picture.c index d02e51370..f40a50032 100644 --- a/render/picture.c +++ b/render/picture.c @@ -76,15 +76,11 @@ picture_window_destructor(CallbackListPtr *pcbl, ScreenPtr pScreen, WindowPtr pW } } -static Bool -PictureCloseScreen(ScreenPtr pScreen) +static void PictureScreenClose(CallbackListPtr *pcbl, ScreenPtr pScreen, void *unused) { PictureScreenPtr ps = GetPictureScreen(pScreen); - Bool ret; int n; - pScreen->CloseScreen = ps->CloseScreen; - ret = (*pScreen->CloseScreen) (pScreen); PictureResetFilters(pScreen); for (n = 0; n < ps->nformats; n++) if (ps->formats[n].type == PictTypeIndexed) @@ -93,7 +89,7 @@ PictureCloseScreen(ScreenPtr pScreen) SetPictureScreen(pScreen, 0); free(ps->formats); free(ps); - return ret; + dixScreenUnhookClose(pScreen, PictureScreenClose); } static void @@ -684,12 +680,11 @@ PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats) ps->subpixel = SubPixelUnknown; - ps->CloseScreen = pScreen->CloseScreen; ps->StoreColors = pScreen->StoreColors; - pScreen->CloseScreen = PictureCloseScreen; pScreen->StoreColors = PictureStoreColors; dixScreenHookWindowDestroy(pScreen, picture_window_destructor); + dixScreenHookClose(pScreen, PictureScreenClose); if (!PictureSetDefaultFilters(pScreen)) { PictureResetFilters(pScreen); diff --git a/render/picturestr.h b/render/picturestr.h index 65dcbc9fc..2307fc26c 100644 --- a/render/picturestr.h +++ b/render/picturestr.h @@ -294,8 +294,6 @@ typedef struct _PictureScreen { GlyphsProcPtr Glyphs; /* unused */ CompositeRectsProcPtr CompositeRects; - CloseScreenProcPtr CloseScreen; - StoreColorsProcPtr StoreColors; InitIndexedProcPtr InitIndexed;