[PATCH 4/5] dix: remove XineramaChangeToCursor. (updated)
Peter Hutterer
peter.hutterer at who-t.net
Mon Feb 2 17:43:52 PST 2009
It's nearly identical to ChangeToCursor now anyway.
---
Daniel found an error, the dereferenced screen was always the same in the
previous patch. See the last hunk for the change.
dix/events.c | 38 ++++++++++----------------------------
1 files changed, 10 insertions(+), 28 deletions(-)
diff --git a/dix/events.c b/dix/events.c
index a536b44..4bb5af8 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -550,24 +550,6 @@ XineramaConfineCursorToWindow(DeviceIntPtr pDev,
CheckPhysLimits(pDev, pSprite->current, generateEvents, FALSE, NULL);
}
-
-static void
-XineramaChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
-{
- SpritePtr pSprite = pDev->spriteInfo->sprite;
-
- if (cursor != pSprite->current)
- {
- if ((pSprite->current->bits->xhot != cursor->bits->xhot) ||
- (pSprite->current->bits->yhot != cursor->bits->yhot))
- CheckPhysLimits(pDev, cursor, FALSE, FALSE, NULL);
- (*pSprite->screen->DisplayCursor)(pDev, pSprite->screen, cursor);
- FreeCursor(pSprite->current, (Cursor)0);
- pSprite->current = cursor;
- pSprite->current->refcnt++;
- }
-}
-
#else
#define SyntheticMotion(dev, x, y) \
PostSyntheticMotion(dev, x, y, \
@@ -849,13 +831,7 @@ static void
ChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
{
SpritePtr pSprite = pDev->spriteInfo->sprite;
-
-#ifdef PANORAMIX
- if(!noPanoramiXExtension) {
- XineramaChangeToCursor(pDev, cursor);
- return;
- }
-#endif
+ ScreenPtr pScreen;
if (cursor != pSprite->current)
{
@@ -863,9 +839,15 @@ ChangeToCursor(DeviceIntPtr pDev, CursorPtr cursor)
(pSprite->current->bits->yhot != cursor->bits->yhot))
CheckPhysLimits(pDev, cursor, FALSE, pSprite->confined,
(ScreenPtr)NULL);
- (*pSprite->hotPhys.pScreen->DisplayCursor) (pDev,
- pSprite->hotPhys.pScreen,
- cursor);
+#ifdef PANORAMIX
+ /* XXX: is this really necessary?? (whot) */
+ if (!noPanoramiXExtension)
+ pScreen = pSprite->screen;
+ else
+#endif
+ pScreen = pSprite->hotPhys.pScreen;
+
+ (*pScreen->DisplayCursor)(pDev, pScreen, cursor);
FreeCursor(pSprite->current, (Cursor)0);
pSprite->current = cursor;
pSprite->current->refcnt++;
--
1.6.0.6
More information about the xorg
mailing list