dix: remove XineramaCheckMotion, merge into CheckMotion.
For 5 lines difference, we don't need to duplicate the whole function. really.
This commit is contained in:
parent
e76f904abe
commit
646add4eb4
90
dix/events.c
90
dix/events.c
|
@ -611,66 +611,6 @@ XineramaCheckVirtualMotion(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static Bool
|
|
||||||
XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
|
||||||
{
|
|
||||||
WindowPtr prevSpriteWin;
|
|
||||||
SpritePtr pSprite = pDev->spriteInfo->sprite;
|
|
||||||
|
|
||||||
prevSpriteWin = pSprite->win;
|
|
||||||
|
|
||||||
if (xE && !syncEvents.playingEvents)
|
|
||||||
{
|
|
||||||
/* Motion events entering DIX get translated to Screen 0
|
|
||||||
coordinates. Replayed events have already been
|
|
||||||
translated since they've entered DIX before */
|
|
||||||
XE_KBPTR.rootX += panoramiXdataPtr[pSprite->screen->myNum].x -
|
|
||||||
panoramiXdataPtr[0].x;
|
|
||||||
XE_KBPTR.rootY += panoramiXdataPtr[pSprite->screen->myNum].y -
|
|
||||||
panoramiXdataPtr[0].y;
|
|
||||||
pSprite->hot.x = XE_KBPTR.rootX;
|
|
||||||
pSprite->hot.y = XE_KBPTR.rootY;
|
|
||||||
if (pSprite->hot.x < pSprite->physLimits.x1)
|
|
||||||
pSprite->hot.x = pSprite->physLimits.x1;
|
|
||||||
else if (pSprite->hot.x >= pSprite->physLimits.x2)
|
|
||||||
pSprite->hot.x = pSprite->physLimits.x2 - 1;
|
|
||||||
if (pSprite->hot.y < pSprite->physLimits.y1)
|
|
||||||
pSprite->hot.y = pSprite->physLimits.y1;
|
|
||||||
else if (pSprite->hot.y >= pSprite->physLimits.y2)
|
|
||||||
pSprite->hot.y = pSprite->physLimits.y2 - 1;
|
|
||||||
|
|
||||||
if (pSprite->hotShape)
|
|
||||||
ConfineToShape(pDev, pSprite->hotShape, &pSprite->hot.x, &pSprite->hot.y);
|
|
||||||
|
|
||||||
pSprite->hotPhys = pSprite->hot;
|
|
||||||
if ((pSprite->hotPhys.x != XE_KBPTR.rootX) ||
|
|
||||||
(pSprite->hotPhys.y != XE_KBPTR.rootY))
|
|
||||||
{
|
|
||||||
XineramaSetCursorPosition(
|
|
||||||
pDev, pSprite->hotPhys.x, pSprite->hotPhys.y, FALSE);
|
|
||||||
}
|
|
||||||
XE_KBPTR.rootX = pSprite->hot.x;
|
|
||||||
XE_KBPTR.rootY = pSprite->hot.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
pSprite->win = XYToWindow(pDev, pSprite->hot.x, pSprite->hot.y);
|
|
||||||
|
|
||||||
if (pSprite->win != prevSpriteWin)
|
|
||||||
{
|
|
||||||
if (prevSpriteWin != NullWindow) {
|
|
||||||
if (!xE)
|
|
||||||
UpdateCurrentTimeIf();
|
|
||||||
DoEnterLeaveEvents(pDev, prevSpriteWin, pSprite->win,
|
|
||||||
NotifyNormal);
|
|
||||||
}
|
|
||||||
PostNewCursor(pDev);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
XineramaConfineCursorToWindow(DeviceIntPtr pDev,
|
XineramaConfineCursorToWindow(DeviceIntPtr pDev,
|
||||||
WindowPtr pWin,
|
WindowPtr pWin,
|
||||||
|
@ -2616,11 +2556,6 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
|
|
||||||
prevSpriteWin = pSprite->win;
|
prevSpriteWin = pSprite->win;
|
||||||
|
|
||||||
#ifdef PANORAMIX
|
|
||||||
if(!noPanoramiXExtension)
|
|
||||||
return XineramaCheckMotion(xE, pDev);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (xE && !syncEvents.playingEvents)
|
if (xE && !syncEvents.playingEvents)
|
||||||
{
|
{
|
||||||
/* GetPointerEvents() guarantees that pointer events have the correct
|
/* GetPointerEvents() guarantees that pointer events have the correct
|
||||||
|
@ -2646,11 +2581,27 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef PANORAMIX
|
||||||
|
if (!noPanoramiXExtension)
|
||||||
|
{
|
||||||
|
/* Motion events entering DIX get translated to Screen 0
|
||||||
|
coordinates. Replayed events have already been
|
||||||
|
translated since they've entered DIX before */
|
||||||
|
*rootX += panoramiXdataPtr[pSprite->screen->myNum].x -
|
||||||
|
panoramiXdataPtr[0].x;
|
||||||
|
*rootY += panoramiXdataPtr[pSprite->screen->myNum].y -
|
||||||
|
panoramiXdataPtr[0].y;
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
if (pSprite->hot.pScreen != pSprite->hotPhys.pScreen)
|
if (pSprite->hot.pScreen != pSprite->hotPhys.pScreen)
|
||||||
{
|
{
|
||||||
pSprite->hot.pScreen = pSprite->hotPhys.pScreen;
|
pSprite->hot.pScreen = pSprite->hotPhys.pScreen;
|
||||||
RootWindow(pDev) = WindowTable[pSprite->hot.pScreen->myNum];
|
RootWindow(pDev) = WindowTable[pSprite->hot.pScreen->myNum];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pSprite->hot.x = *rootX;
|
pSprite->hot.x = *rootX;
|
||||||
pSprite->hot.y = *rootY;
|
pSprite->hot.y = *rootY;
|
||||||
if (pSprite->hot.x < pSprite->physLimits.x1)
|
if (pSprite->hot.x < pSprite->physLimits.x1)
|
||||||
|
@ -2668,10 +2619,19 @@ CheckMotion(xEvent *xE, DeviceIntPtr pDev)
|
||||||
if ((pSprite->hotPhys.x != *rootX) ||
|
if ((pSprite->hotPhys.x != *rootX) ||
|
||||||
(pSprite->hotPhys.y != *rootY))
|
(pSprite->hotPhys.y != *rootY))
|
||||||
{
|
{
|
||||||
|
#ifdef PANORAMIX
|
||||||
|
if (!noPanoramiXExtension)
|
||||||
|
{
|
||||||
|
XineramaSetCursorPosition(
|
||||||
|
pDev, pSprite->hotPhys.x, pSprite->hotPhys.y, FALSE);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
(*pSprite->hotPhys.pScreen->SetCursorPosition)(
|
(*pSprite->hotPhys.pScreen->SetCursorPosition)(
|
||||||
pDev, pSprite->hotPhys.pScreen,
|
pDev, pSprite->hotPhys.pScreen,
|
||||||
pSprite->hotPhys.x, pSprite->hotPhys.y, FALSE);
|
pSprite->hotPhys.x, pSprite->hotPhys.y, FALSE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*rootX = pSprite->hot.x;
|
*rootX = pSprite->hot.x;
|
||||||
*rootY = pSprite->hot.y;
|
*rootY = pSprite->hot.y;
|
||||||
|
|
Loading…
Reference in New Issue