diff options
Diffstat (limited to 'xorg-server/dix/events.c')
-rw-r--r-- | xorg-server/dix/events.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c index 8a4c6b9ac..d991abe95 100644 --- a/xorg-server/dix/events.c +++ b/xorg-server/dix/events.c @@ -765,7 +765,10 @@ CheckPhysLimits( { #ifdef PANORAMIX if (!noPanoramiXExtension) - XineramaSetCursorPosition (pDev, new.x, new.y, generateEvents); + { + if (pScreen && ((new.x != pSprite->hotPhys.x) || (new.y != pSprite->hotPhys.y))) + XineramaSetCursorPosition (pDev, new.x, new.y, generateEvents); + } else #endif { @@ -2259,7 +2262,7 @@ DeliverRawEvent(RawDeviceEvent *ev, DeviceIntPtr device) if (i != Success) { ErrorF("[Xi] %s: XI2 conversion failed in %s (%d)\n", - __func__, device->name, i); + __FUNCTION__, device->name, i); return; } @@ -2900,6 +2903,9 @@ CheckMotion(DeviceEvent *ev, DeviceIntPtr pDev) verify_internal_event((InternalEvent *)ev); + if (!pSprite) + return FALSE; + prevSpriteWin = pSprite->win; if (ev && !syncEvents.playingEvents) |