From a1189fe322724ab1b524aaad5b700287777252bd Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 18 Apr 2014 13:57:55 -0700 Subject: [PATCH] mi: Fix block handler wrapping in miSprite miSpriteBlockHandler was leaving the BlockHandler wrapped until just before calling any nested block handler. If any code executed before that added or removed block handlers, the wrapping chain would have been broken. Signed-off-by: Keith Packard Reviewed-by: Eric Anholt --- mi/misprite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index eea731a155..68a49be1ea 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -520,6 +520,8 @@ miSpriteBlockHandler(ScreenPtr pScreen, void *pTimeout, miCursorInfoPtr pCursorInfo; Bool WorkToDo = FALSE; + SCREEN_PROLOGUE(pPriv, pScreen, BlockHandler); + for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { if (DevHasCursor(pDev)) { pCursorInfo = MISPRITE(pDev); @@ -543,8 +545,6 @@ miSpriteBlockHandler(ScreenPtr pScreen, void *pTimeout, } } - SCREEN_PROLOGUE(pPriv, pScreen, BlockHandler); - (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask); if (WorkToDo)