--- ./mi/mipointer.c.ORIGINAL 2011-07-15 09:26:40.000000000 -0400 +++ ./mi/mipointer.c 2012-04-06 02:44:27.000000000 -0400 @@ -74,7 +74,7 @@ DevPrivateKeyRec miPointerScreenKeyRec; DevPrivateKeyRec miPointerPrivKeyRec; #define MIPOINTER(dev) \ - (IsFloating(dev) ? \ + ((!IsMaster(dev) && IsFloating(dev)) ? \ (miPointerPtr)dixLookupPrivate(&(dev)->devPrivates, miPointerPrivKey): \ (miPointerPtr)dixLookupPrivate(&(GetMaster(dev, MASTER_POINTER))->devPrivates, miPointerPrivKey)) --- ./mi/misprite.c.ORIGINAL 2011-04-03 23:19:50.000000000 -0400 +++ ./mi/misprite.c 2012-04-06 02:44:45.000000000 -0400 @@ -143,7 +143,7 @@ typedef struct { #endif #define MISPRITE(dev) \ - (IsFloating(dev) ? \ + ((!IsMaster(dev) && IsFloating(dev)) ? \ (miCursorInfoPtr)dixLookupPrivate(&dev->devPrivates, miSpriteDevPrivatesKey) : \ (miCursorInfoPtr)dixLookupPrivate(&(GetMaster(dev, MASTER_POINTER))->devPrivates, miSpriteDevPrivatesKey)) @@ -766,7 +766,7 @@ miSpriteRealizeCursor (DeviceIntPtr pDev { miCursorInfoPtr pCursorInfo; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return FALSE; pCursorInfo = MISPRITE(pDev); @@ -790,7 +790,7 @@ miSpriteSetCursor (DeviceIntPtr pDev, Sc miCursorInfoPtr pPointer; miSpriteScreenPtr pScreenPriv; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; pPointer = MISPRITE(pDev); @@ -848,7 +848,7 @@ miSpriteMoveCursor (DeviceIntPtr pDev, S { CursorPtr pCursor; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; pCursor = MISPRITE(pDev)->pCursor; @@ -902,7 +902,7 @@ miSpriteRemoveCursor (DeviceIntPtr pDev, miCursorInfoPtr pCursorInfo; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; DamageDrawInternal (pScreen, TRUE); @@ -941,7 +941,7 @@ miSpriteSaveUnderCursor(DeviceIntPtr pDe CursorPtr pCursor; miCursorInfoPtr pCursorInfo; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; DamageDrawInternal (pScreen, TRUE); @@ -982,7 +982,7 @@ miSpriteRestoreCursor (DeviceIntPtr pDev CursorPtr pCursor; miCursorInfoPtr pCursorInfo; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; DamageDrawInternal (pScreen, TRUE); @@ -1022,7 +1022,7 @@ miSpriteComputeSaved (DeviceIntPtr pDev, CursorPtr pCursor; miCursorInfoPtr pCursorInfo; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return; pCursorInfo = MISPRITE(pDev); --- ./render/animcur.c.ORIGINAL 2012-01-18 14:47:46.000000000 -0500 +++ ./render/animcur.c 2012-04-06 02:45:49.000000000 -0400 @@ -208,7 +208,7 @@ AnimCurDisplayCursor (DeviceIntPtr pDev, AnimCurScreenPtr as = GetAnimCurScreen(pScreen); Bool ret; - if (IsFloating(pDev)) + if (!IsMaster(pDev) && IsFloating(pDev)) return FALSE; Unwrap (as, pScreen, DisplayCursor);