dix: move freeing the sprite into a function
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
46adcefb0e
commit
e57d6a8902
|
@ -918,12 +918,7 @@ CloseDevice(DeviceIntPtr dev)
|
||||||
free(classes);
|
free(classes);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DevHasCursor(dev) && dev->spriteInfo->sprite) {
|
FreeSprite(dev);
|
||||||
if (dev->spriteInfo->sprite->current)
|
|
||||||
FreeCursor(dev->spriteInfo->sprite->current, None);
|
|
||||||
free(dev->spriteInfo->sprite->spriteTrace);
|
|
||||||
free(dev->spriteInfo->sprite);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* a client may have the device set as client pointer */
|
/* a client may have the device set as client pointer */
|
||||||
for (j = 0; j < currentMaxClients; j++) {
|
for (j = 0; j < currentMaxClients; j++) {
|
||||||
|
|
12
dix/events.c
12
dix/events.c
|
@ -3192,6 +3192,18 @@ InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FreeSprite(DeviceIntPtr dev)
|
||||||
|
{
|
||||||
|
if (DevHasCursor(dev) && dev->spriteInfo->sprite) {
|
||||||
|
if (dev->spriteInfo->sprite->current)
|
||||||
|
FreeCursor(dev->spriteInfo->sprite->current, None);
|
||||||
|
free(dev->spriteInfo->sprite->spriteTrace);
|
||||||
|
free(dev->spriteInfo->sprite);
|
||||||
|
}
|
||||||
|
dev->spriteInfo->sprite = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the mouse sprite info when the server switches from a pScreen to another.
|
* Update the mouse sprite info when the server switches from a pScreen to another.
|
||||||
* Otherwise, the pScreen of the mouse sprite is never updated when we switch
|
* Otherwise, the pScreen of the mouse sprite is never updated when we switch
|
||||||
|
|
|
@ -395,6 +395,8 @@ DeliverTouchEvents(DeviceIntPtr /* dev */ ,
|
||||||
extern void
|
extern void
|
||||||
InitializeSprite(DeviceIntPtr /* pDev */ ,
|
InitializeSprite(DeviceIntPtr /* pDev */ ,
|
||||||
WindowPtr /* pWin */ );
|
WindowPtr /* pWin */ );
|
||||||
|
extern void
|
||||||
|
FreeSprite(DeviceIntPtr pDev);
|
||||||
|
|
||||||
extern void
|
extern void
|
||||||
UpdateSpriteForScreen(DeviceIntPtr /* pDev */ ,
|
UpdateSpriteForScreen(DeviceIntPtr /* pDev */ ,
|
||||||
|
|
Loading…
Reference in New Issue