diff --git a/mi/misprite.c b/mi/misprite.c index ff727d551..81a0b9d58 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -56,8 +56,6 @@ in this Software without prior written authorization from The Open Group. #endif # include "damage.h" - - #define SPRITE_DEBUG_ENABLE 0 #if SPRITE_DEBUG_ENABLE #define SPRITE_DEBUG(x) ErrorF x @@ -65,29 +63,26 @@ in this Software without prior written authorization from The Open Group. #define SPRITE_DEBUG(x) #endif - #define MISPRITE(dev) \ ((DevHasCursor(dev)) ? \ (miCursorInfoPtr)dixLookupPrivate(&dev->devPrivates, miSpriteDevPrivatesKey) : \ (miCursorInfoPtr)dixLookupPrivate(&dev->u.master->devPrivates, miSpriteDevPrivatesKey)) -static int damageRegister = 0; - static void miSpriteDisableDamage(ScreenPtr pScreen, miSpriteScreenPtr pScreenPriv) { - if (damageRegister) { + if (pScreenPriv->damageRegistered) { DamageUnregister (&(pScreen->GetScreenPixmap(pScreen)->drawable), pScreenPriv->pDamage); - damageRegister = 0; + pScreenPriv->damageRegistered = 0; } } static void miSpriteEnableDamage(ScreenPtr pScreen, miSpriteScreenPtr pScreenPriv) { - if (!damageRegister) { - damageRegister = 1; + if (!pScreenPriv->damageRegistered) { + pScreenPriv->damageRegistered = 1; DamageRegister (&(pScreen->GetScreenPixmap(pScreen)->drawable), pScreenPriv->pDamage); } @@ -269,6 +264,8 @@ miSpriteInitialize (ScreenPtr pScreen, pScreenPriv->colors[MASK_COLOR].red = 0; pScreenPriv->colors[MASK_COLOR].green = 0; pScreenPriv->colors[MASK_COLOR].blue = 0; + pScreenPriv->damageRegistered = 0; + dixSetPrivate(&pScreen->devPrivates, miSpriteScreenKey, pScreenPriv); pScreen->CloseScreen = miSpriteCloseScreen; @@ -282,8 +279,6 @@ miSpriteInitialize (ScreenPtr pScreen, pScreen->BlockHandler = miSpriteBlockHandler; - damageRegister = 0; - return TRUE; } diff --git a/mi/mispritest.h b/mi/mispritest.h index 232cdaffe..1b24f262b 100644 --- a/mi/mispritest.h +++ b/mi/mispritest.h @@ -87,6 +87,7 @@ typedef struct { VisualPtr pVisual; miSpriteCursorFuncPtr funcs; DamagePtr pDamage; /* damage tracking structure */ + Bool damageRegistered; } miSpriteScreenRec, *miSpriteScreenPtr; #define SOURCE_COLOR 0