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 <keithp@keithp.com> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
08fc33042c
commit
a1189fe322
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user