mi: handle sprite even for floating slave devices.
We still don't render it, but we accept all the other calls to update it's internal state.
This commit is contained in:
parent
0f15875a27
commit
e0fbe404a4
|
@ -50,7 +50,7 @@ _X_EXPORT DevPrivateKey miPointerScreenKey = &miPointerScreenKey;
|
||||||
static DevPrivateKey miPointerPrivKey = &miPointerPrivKey;
|
static DevPrivateKey miPointerPrivKey = &miPointerPrivKey;
|
||||||
|
|
||||||
#define MIPOINTER(dev) \
|
#define MIPOINTER(dev) \
|
||||||
((DevHasCursor((dev))) ? \
|
((DevHasCursor((dev)) || (!dev->isMaster && !dev->u.master)) ? \
|
||||||
(miPointerPtr)dixLookupPrivate(&(dev)->devPrivates, miPointerPrivKey): \
|
(miPointerPtr)dixLookupPrivate(&(dev)->devPrivates, miPointerPrivKey): \
|
||||||
(miPointerPtr)dixLookupPrivate(&(dev)->u.master->devPrivates, miPointerPrivKey))
|
(miPointerPtr)dixLookupPrivate(&(dev)->u.master->devPrivates, miPointerPrivKey))
|
||||||
|
|
||||||
|
@ -193,9 +193,6 @@ miPointerDisplayCursor (pDev, pScreen, pCursor)
|
||||||
{
|
{
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* return for keyboards */
|
/* return for keyboards */
|
||||||
if ((pDev->isMaster && !DevHasCursor(pDev)) ||
|
if ((pDev->isMaster && !DevHasCursor(pDev)) ||
|
||||||
(!pDev->isMaster && pDev->u.master && !DevHasCursor(pDev->u.master)))
|
(!pDev->isMaster && pDev->u.master && !DevHasCursor(pDev->u.master)))
|
||||||
|
@ -217,9 +214,6 @@ miPointerConstrainCursor (pDev, pScreen, pBox)
|
||||||
{
|
{
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return;
|
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
|
||||||
pPointer->limits = *pBox;
|
pPointer->limits = *pBox;
|
||||||
|
@ -313,13 +307,13 @@ miPointerDeviceCleanup(pDev, pScreen)
|
||||||
DeviceIntPtr pDev;
|
DeviceIntPtr pDev;
|
||||||
ScreenPtr pScreen;
|
ScreenPtr pScreen;
|
||||||
{
|
{
|
||||||
if (DevHasCursor(pDev))
|
if (!pDev->isMaster && pDev->u.master)
|
||||||
{
|
return;
|
||||||
SetupScreen(pScreen);
|
|
||||||
(*pScreenPriv->spriteFuncs->DeviceCursorCleanup)(pDev, pScreen);
|
SetupScreen(pScreen);
|
||||||
xfree(dixLookupPrivate(&pDev->devPrivates, miPointerPrivKey));
|
(*pScreenPriv->spriteFuncs->DeviceCursorCleanup)(pDev, pScreen);
|
||||||
dixSetPrivate(&pDev->devPrivates, miPointerPrivKey, NULL);
|
xfree(dixLookupPrivate(&pDev->devPrivates, miPointerPrivKey));
|
||||||
}
|
dixSetPrivate(&pDev->devPrivates, miPointerPrivKey, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -334,8 +328,6 @@ miPointerWarpCursor (pDev, pScreen, x, y)
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
BOOL changedScreen = FALSE;
|
BOOL changedScreen = FALSE;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return;
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
SetupScreen (pScreen);
|
SetupScreen (pScreen);
|
||||||
|
|
||||||
|
@ -388,7 +380,7 @@ miPointerUpdateSprite (DeviceIntPtr pDev)
|
||||||
int x, y, devx, devy;
|
int x, y, devx, devy;
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
if (!pDev || !pDev->coreEvents || (!pDev->isMaster && !pDev->u.master))
|
if (!pDev || !pDev->coreEvents)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
@ -477,10 +469,7 @@ miPointerSetScreen(DeviceIntPtr pDev, int screen_no, int x, int y)
|
||||||
{
|
{
|
||||||
miPointerScreenPtr pScreenPriv;
|
miPointerScreenPtr pScreenPriv;
|
||||||
ScreenPtr pScreen;
|
ScreenPtr pScreen;
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return;
|
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
|
||||||
|
@ -502,10 +491,8 @@ miPointerCurrentScreen ()
|
||||||
_X_EXPORT ScreenPtr
|
_X_EXPORT ScreenPtr
|
||||||
miPointerGetScreen(DeviceIntPtr pDev)
|
miPointerGetScreen(DeviceIntPtr pDev)
|
||||||
{
|
{
|
||||||
if (!pDev || (!pDev->isMaster && !pDev->u.master))
|
miPointerPtr pPointer = MIPOINTER(pDev);
|
||||||
return NULL;
|
return (pPointer) ? pPointer->pScreen : NULL;
|
||||||
|
|
||||||
return MIPOINTER(pDev)->pScreen;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Move the pointer to x, y on the current screen, update the sprite, and
|
/* Move the pointer to x, y on the current screen, update the sprite, and
|
||||||
|
@ -525,9 +512,6 @@ miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
SetupScreen(pScreen);
|
SetupScreen(pScreen);
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return;
|
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
|
|
||||||
/* Hack: We mustn't call into ->MoveCursor for anything but the
|
/* Hack: We mustn't call into ->MoveCursor for anything but the
|
||||||
|
@ -556,9 +540,6 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y, unsigned long time)
|
||||||
ScreenPtr newScreen;
|
ScreenPtr newScreen;
|
||||||
|
|
||||||
miPointerPtr pPointer;
|
miPointerPtr pPointer;
|
||||||
|
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
return;
|
|
||||||
|
|
||||||
pPointer = MIPOINTER(pDev);
|
pPointer = MIPOINTER(pDev);
|
||||||
pScreen = pPointer->pScreen;
|
pScreen = pPointer->pScreen;
|
||||||
|
@ -613,12 +594,6 @@ miPointerPosition (int *x, int *y)
|
||||||
_X_EXPORT void
|
_X_EXPORT void
|
||||||
miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
|
miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
|
||||||
{
|
{
|
||||||
if (!pDev->isMaster && !pDev->u.master)
|
|
||||||
{
|
|
||||||
ErrorF("[mi] miPointerGetPosition called for floating device.\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
*x = MIPOINTER(pDev)->x;
|
*x = MIPOINTER(pDev)->x;
|
||||||
*y = MIPOINTER(pDev)->y;
|
*y = MIPOINTER(pDev)->y;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue