[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