dix: moved sprite from static to be pointer of type SpritePtr
added SpriteRecs for MPX devices changed sprite dependency and added MPX functionality to parts of events.c (ConfineToShape, PostNewCursor, XineramaCheckMotion, CheckMotion, XineramaChangeToCursor, ChangeToCursor, CheckPhysLimits, PointerConfinedToScreen) added DeviceIntRec param to GetSpritePosition(). This required some minor changes in ddx, xtest, xkb and xfixes. mi: changed miPointer to pointer instead of static struct.
This commit is contained in:
parent
fd8b9a6eae
commit
9db851c22d
24
Changelog
24
Changelog
|
@ -34,6 +34,30 @@ Files:
|
|||
|
||||
TAG: MPX_BEFORE_DIX_API_BREAK
|
||||
|
||||
|
||||
|
||||
dix: moved sprite from static to be pointer of type SpritePtr
|
||||
added SpriteRecs for MPX devices
|
||||
changed sprite dependency and added MPX functionality to parts
|
||||
of events.c (ConfineToShape, PostNewCursor, XineramaCheckMotion,
|
||||
CheckMotion, XineramaChangeToCursor, ChangeToCursor, CheckPhysLimits,
|
||||
PointerConfinedToScreen)
|
||||
added DeviceIntRec param to GetSpritePosition(). This required some
|
||||
minor changes in ddx, xtest, xkb and xfixes.
|
||||
|
||||
mi: changed miPointer to pointer instead of static struct.
|
||||
|
||||
Files:
|
||||
dix/events.c
|
||||
dix/exevents.c
|
||||
Xext/xtest.c
|
||||
ddx/ddxFakeBtn.c
|
||||
ddx/ddxFakeMtn.c
|
||||
ddx/ddxDevBtn.c
|
||||
xkb/xkbActions.c
|
||||
xfixes/cursor.c
|
||||
mi/mieq.c
|
||||
|
||||
== 20.11.06 ==
|
||||
|
||||
mi: moved core pointer information from miSpriteScreenRec into a
|
||||
|
|
|
@ -379,7 +379,7 @@ ProcXTestFakeInput(client)
|
|||
if (ev->u.u.detail == xTrue)
|
||||
{
|
||||
int x, y;
|
||||
GetSpritePosition(&x, &y);
|
||||
GetSpritePosition(inputInfo.pointer, &x, &y);
|
||||
ev->u.keyButtonPointer.rootX += x;
|
||||
ev->u.keyButtonPointer.rootY += y;
|
||||
}
|
||||
|
|
|
@ -119,13 +119,17 @@ ProcessOtherEvent(xEventPtr xE, register DeviceIntPtr other, int count)
|
|||
deviceValuator *xV = (deviceValuator *) xE;
|
||||
|
||||
if (xE->u.u.type != DeviceValuator) {
|
||||
GetSpritePosition(&rootX, &rootY);
|
||||
GetSpritePosition(other, &rootX, &rootY);
|
||||
xE->u.keyButtonPointer.rootX = rootX;
|
||||
xE->u.keyButtonPointer.rootY = rootY;
|
||||
key = xE->u.u.detail;
|
||||
NoticeEventTime(xE);
|
||||
xE->u.keyButtonPointer.state = inputInfo.keyboard->key->state |
|
||||
#ifdef MPX
|
||||
other->button->state;
|
||||
#else
|
||||
inputInfo.pointer->button->state;
|
||||
#endif
|
||||
bit = 1 << (key & 7);
|
||||
}
|
||||
if (DeviceEventCallback) {
|
||||
|
|
890
dix/events.c
890
dix/events.c
File diff suppressed because it is too large
Load Diff
|
@ -59,6 +59,8 @@ SOFTWARE.
|
|||
#define ARGB_CURSOR
|
||||
#endif
|
||||
|
||||
struct _DeviceIntRec;
|
||||
|
||||
typedef struct _Cursor *CursorPtr;
|
||||
typedef struct _CursorMetric *CursorMetricPtr;
|
||||
|
||||
|
@ -133,9 +135,10 @@ extern void NewCurrentScreen(
|
|||
int /*x*/,
|
||||
int /*y*/);
|
||||
|
||||
extern Bool PointerConfinedToScreen(void);
|
||||
extern Bool PointerConfinedToScreen(struct _DeviceIntRec* /* pDev */);
|
||||
|
||||
extern void GetSpritePosition(
|
||||
struct _DeviceIntRec* /* pDev */,
|
||||
int * /*px*/,
|
||||
int * /*py*/);
|
||||
|
||||
|
|
14
mi/mieq.c
14
mi/mieq.c
|
@ -239,11 +239,9 @@ mieqProcessInputEvents()
|
|||
}
|
||||
|
||||
#ifdef MPX
|
||||
/* MPX devices send both core and Xi events. Depending on what
|
||||
* event we have, dev is set to either the core pointer or the
|
||||
* device. This gives us the right processing function but we need
|
||||
* to pass the right device in too.
|
||||
* Any device that is not a MP device is processed as usual.
|
||||
/* MPX devices send both core and Xi events.
|
||||
* Use dev to get the correct processing function but supply
|
||||
* e->pDev to pass the correct device
|
||||
*/
|
||||
if (e->pDev->isMPDev)
|
||||
dev->public.processInputProc(e->event, e->pDev, e->nevents);
|
||||
|
@ -252,11 +250,7 @@ mieqProcessInputEvents()
|
|||
dev->public.processInputProc(e->event, dev, e->nevents);
|
||||
}
|
||||
#ifdef MPX
|
||||
/*
|
||||
* This is inefficient as we update the sprite for each event rather
|
||||
* than at the end of the event queue. But we don't know if the
|
||||
* next event is from the same device, so it's better to do it here.
|
||||
*/
|
||||
/* Update the sprite now. Next event may be from different device. */
|
||||
if (e->event[0].u.u.type == MotionNotify &&
|
||||
(e->pDev->isMPDev || e->pDev->coreEvents))
|
||||
{
|
||||
|
|
190
mi/mipointer.c
190
mi/mipointer.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* mipointer.c
|
||||
* miPointer->c
|
||||
*/
|
||||
|
||||
|
||||
|
@ -65,7 +65,7 @@ static unsigned long miPointerGeneration = 0;
|
|||
* until more than one pointer device exists.
|
||||
*/
|
||||
|
||||
static miPointerRec miPointer;
|
||||
static miPointerPtr miPointer;
|
||||
|
||||
#ifdef MPX
|
||||
/* Multipointers */
|
||||
|
@ -144,19 +144,27 @@ miPointerInitialize (pScreen, spriteFuncs, screenFuncs, waitForUpdate)
|
|||
/*
|
||||
* set up the pointer object
|
||||
*/
|
||||
miPointer.pScreen = NULL;
|
||||
miPointer.pSpriteScreen = NULL;
|
||||
miPointer.pCursor = NULL;
|
||||
miPointer.pSpriteCursor = NULL;
|
||||
miPointer.limits.x1 = 0;
|
||||
miPointer.limits.x2 = 32767;
|
||||
miPointer.limits.y1 = 0;
|
||||
miPointer.limits.y2 = 32767;
|
||||
miPointer.confined = FALSE;
|
||||
miPointer.x = 0;
|
||||
miPointer.y = 0;
|
||||
miPointer = (miPointerPtr)xalloc(sizeof(miPointerRec));
|
||||
if (!miPointer)
|
||||
{
|
||||
xfree(pScreenPriv);
|
||||
return FALSE;
|
||||
}
|
||||
miPointer->pScreen = NULL;
|
||||
miPointer->pSpriteScreen = NULL;
|
||||
miPointer->pCursor = NULL;
|
||||
miPointer->pSpriteCursor = NULL;
|
||||
miPointer->limits.x1 = 0;
|
||||
miPointer->limits.x2 = 32767;
|
||||
miPointer->limits.y1 = 0;
|
||||
miPointer->limits.y2 = 32767;
|
||||
miPointer->confined = FALSE;
|
||||
miPointer->x = 0;
|
||||
miPointer->y = 0;
|
||||
|
||||
#ifdef MPX
|
||||
xfree(miPointer);
|
||||
miPointer = &miMPPointers[1];
|
||||
/*
|
||||
* Set up pointer objects for multipointer devices.
|
||||
*/
|
||||
|
@ -188,10 +196,10 @@ miPointerCloseScreen (index, pScreen)
|
|||
int mpPointerIdx = 0;
|
||||
SetupScreen(pScreen);
|
||||
|
||||
if (pScreen == miPointer.pScreen)
|
||||
miPointer.pScreen = 0;
|
||||
if (pScreen == miPointer.pSpriteScreen)
|
||||
miPointer.pSpriteScreen = 0;
|
||||
if (pScreen == miPointer->pScreen)
|
||||
miPointer->pScreen = 0;
|
||||
if (pScreen == miPointer->pSpriteScreen)
|
||||
miPointer->pSpriteScreen = 0;
|
||||
#ifdef MPX
|
||||
while(mpPointerIdx < MAX_DEVICES)
|
||||
{
|
||||
|
@ -249,8 +257,8 @@ miPointerDisplayCursor (pScreen, pCursor)
|
|||
}
|
||||
|
||||
#endif
|
||||
miPointer.pCursor = pCursor;
|
||||
miPointer.pScreen = pScreen;
|
||||
miPointer->pCursor = pCursor;
|
||||
miPointer->pScreen = pScreen;
|
||||
miPointerUpdateSprite(inputInfo.pointer);
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -261,14 +269,13 @@ miPointerConstrainCursor (pDev, pScreen, pBox)
|
|||
ScreenPtr pScreen;
|
||||
BoxPtr pBox;
|
||||
{
|
||||
miPointerPtr pPointer = miPointer;
|
||||
#ifdef MPX
|
||||
if (IsMPDev(pDev))
|
||||
{
|
||||
miMPPointers[pDev->id].limits = *pBox;
|
||||
}
|
||||
pPointer = &miMPPointers[pDev->id];
|
||||
#endif
|
||||
miPointer.limits = *pBox;
|
||||
miPointer.confined = PointerConfinedToScreen();
|
||||
pPointer->limits = *pBox;
|
||||
pPointer->confined = PointerConfinedToScreen(pDev);
|
||||
}
|
||||
|
||||
/*ARGSUSED*/
|
||||
|
@ -320,7 +327,7 @@ miPointerWarpCursor (pScreen, x, y)
|
|||
|
||||
SetupScreen (pScreen);
|
||||
|
||||
if (miPointer.pScreen != pScreen)
|
||||
if (miPointer->pScreen != pScreen)
|
||||
(*pScreenPriv->screenFuncs->NewEventScreen) (pScreen, TRUE);
|
||||
|
||||
if (GenerateEvent)
|
||||
|
@ -331,16 +338,16 @@ miPointerWarpCursor (pScreen, x, y)
|
|||
{
|
||||
/* everything from miPointerMove except the event and history */
|
||||
|
||||
if (!pScreenPriv->waitForUpdate && pScreen == miPointer.pSpriteScreen)
|
||||
if (!pScreenPriv->waitForUpdate && pScreen == miPointer->pSpriteScreen)
|
||||
{
|
||||
miPointer.devx = x;
|
||||
miPointer.devy = y;
|
||||
if(!miPointer.pCursor->bits->emptyMask)
|
||||
miPointer->devx = x;
|
||||
miPointer->devy = y;
|
||||
if(!miPointer->pCursor->bits->emptyMask)
|
||||
(*pScreenPriv->spriteFuncs->MoveCursor) (pDev, pScreen, x, y);
|
||||
}
|
||||
miPointer.x = x;
|
||||
miPointer.y = y;
|
||||
miPointer.pScreen = pScreen;
|
||||
miPointer->x = x;
|
||||
miPointer->y = y;
|
||||
miPointer->pScreen = pScreen;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -367,7 +374,7 @@ miPointerUpdateSprite (DeviceIntPtr pDev)
|
|||
miPointerScreenPtr pScreenPriv;
|
||||
CursorPtr pCursor;
|
||||
int x, y, devx, devy;
|
||||
miPointerPtr pointer;
|
||||
miPointerPtr pPointer;
|
||||
|
||||
#ifdef MPX
|
||||
if (!pDev ||
|
||||
|
@ -379,66 +386,66 @@ miPointerUpdateSprite (DeviceIntPtr pDev)
|
|||
|
||||
#ifdef MPX
|
||||
if (IsMPDev(pDev))
|
||||
pointer = &miMPPointers[pDev->id];
|
||||
pPointer = &miMPPointers[pDev->id];
|
||||
else
|
||||
pointer = &miPointer;
|
||||
pPointer = miPointer;
|
||||
#endif
|
||||
|
||||
pScreen = pointer->pScreen;
|
||||
pScreen = pPointer->pScreen;
|
||||
if (!pScreen)
|
||||
return;
|
||||
|
||||
x = pointer->x;
|
||||
y = pointer->y;
|
||||
devx = pointer->devx;
|
||||
devy = pointer->devy;
|
||||
x = pPointer->x;
|
||||
y = pPointer->y;
|
||||
devx = pPointer->devx;
|
||||
devy = pPointer->devy;
|
||||
|
||||
pScreenPriv = GetScreenPrivate (pScreen);
|
||||
/*
|
||||
* if the cursor has switched screens, disable the sprite
|
||||
* on the old screen
|
||||
*/
|
||||
if (pScreen != pointer->pSpriteScreen)
|
||||
if (pScreen != pPointer->pSpriteScreen)
|
||||
{
|
||||
if (pointer->pSpriteScreen)
|
||||
if (pPointer->pSpriteScreen)
|
||||
{
|
||||
miPointerScreenPtr pOldPriv;
|
||||
|
||||
pOldPriv = GetScreenPrivate (pointer->pSpriteScreen);
|
||||
if (pointer->pCursor)
|
||||
pOldPriv = GetScreenPrivate (pPointer->pSpriteScreen);
|
||||
if (pPointer->pCursor)
|
||||
{
|
||||
(*pOldPriv->spriteFuncs->SetCursor)
|
||||
(pDev, pointer->pSpriteScreen, NullCursor, 0, 0);
|
||||
(pDev, pPointer->pSpriteScreen, NullCursor, 0, 0);
|
||||
}
|
||||
(*pOldPriv->screenFuncs->CrossScreen) (pointer->pSpriteScreen, FALSE);
|
||||
(*pOldPriv->screenFuncs->CrossScreen) (pPointer->pSpriteScreen, FALSE);
|
||||
}
|
||||
(*pScreenPriv->screenFuncs->CrossScreen) (pScreen, TRUE);
|
||||
(*pScreenPriv->spriteFuncs->SetCursor)
|
||||
(pDev, pScreen, pointer->pCursor, x, y);
|
||||
pointer->devx = x;
|
||||
pointer->devy = y;
|
||||
pointer->pSpriteCursor = pointer->pCursor;
|
||||
pointer->pSpriteScreen = pScreen;
|
||||
(pDev, pScreen, pPointer->pCursor, x, y);
|
||||
pPointer->devx = x;
|
||||
pPointer->devy = y;
|
||||
pPointer->pSpriteCursor = pPointer->pCursor;
|
||||
pPointer->pSpriteScreen = pScreen;
|
||||
}
|
||||
/*
|
||||
* if the cursor has changed, display the new one
|
||||
*/
|
||||
else if (pointer->pCursor != pointer->pSpriteCursor)
|
||||
else if (pPointer->pCursor != pPointer->pSpriteCursor)
|
||||
{
|
||||
pCursor = pointer->pCursor;
|
||||
pCursor = pPointer->pCursor;
|
||||
if (pCursor->bits->emptyMask && !pScreenPriv->showTransparent)
|
||||
pCursor = NullCursor;
|
||||
(*pScreenPriv->spriteFuncs->SetCursor) (pDev, pScreen, pCursor, x, y);
|
||||
|
||||
pointer->devx = x;
|
||||
pointer->devy = y;
|
||||
pointer->pSpriteCursor = pointer->pCursor;
|
||||
pPointer->devx = x;
|
||||
pPointer->devy = y;
|
||||
pPointer->pSpriteCursor = pPointer->pCursor;
|
||||
}
|
||||
else if (x != devx || y != devy)
|
||||
{
|
||||
pointer->devx = x;
|
||||
pointer->devy = y;
|
||||
if(!pointer->pCursor->bits->emptyMask)
|
||||
pPointer->devx = x;
|
||||
pPointer->devy = y;
|
||||
if(!pPointer->pCursor->bits->emptyMask)
|
||||
(*pScreenPriv->spriteFuncs->MoveCursor) (pDev, pScreen, x, y);
|
||||
}
|
||||
}
|
||||
|
@ -451,7 +458,7 @@ miPointerUpdateSprite (DeviceIntPtr pDev)
|
|||
void
|
||||
miPointerDeltaCursor (int dx, int dy, unsigned long time)
|
||||
{
|
||||
int x = miPointer.x + dx, y = miPointer.y + dy;
|
||||
int x = miPointer->x + dx, y = miPointer->y + dy;
|
||||
|
||||
miPointerSetPosition(inputInfo.pointer, &x, &y, time);
|
||||
}
|
||||
|
@ -480,8 +487,8 @@ miPointerSetScreen(DeviceIntPtr pDev, int screen_no, int x, int y)
|
|||
}
|
||||
#endif
|
||||
{
|
||||
miPointer.limits.x2 = pScreen->width;
|
||||
miPointer.limits.y2 = pScreen->height;
|
||||
miPointer->limits.x2 = pScreen->width;
|
||||
miPointer->limits.y2 = pScreen->height;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -498,7 +505,7 @@ miPointerGetScreen(DeviceIntPtr pDev)
|
|||
if (IsMPDev(pDev))
|
||||
return miMPPointers[pDev->id].pScreen;
|
||||
#endif
|
||||
return miPointer.pScreen;
|
||||
return miPointer->pScreen;
|
||||
}
|
||||
|
||||
/* Move the pointer to x, y on the current screen, update the sprite, and
|
||||
|
@ -517,15 +524,15 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y, unsigned long time)
|
|||
ScreenPtr pScreen;
|
||||
ScreenPtr newScreen;
|
||||
|
||||
miPointerPtr pointer;
|
||||
miPointerPtr pPointer;
|
||||
#ifdef MPX
|
||||
if (IsMPDev(pDev))
|
||||
pointer = &(miMPPointers[pDev->id]);
|
||||
pPointer = &(miMPPointers[pDev->id]);
|
||||
else
|
||||
#endif
|
||||
pointer = &miPointer;
|
||||
pPointer = miPointer;
|
||||
|
||||
pScreen = pointer->pScreen;
|
||||
pScreen = pPointer->pScreen;
|
||||
if (!pScreen)
|
||||
return; /* called before ready */
|
||||
|
||||
|
@ -540,7 +547,7 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y, unsigned long time)
|
|||
if (*x < 0 || *x >= pScreen->width || *y < 0 || *y >= pScreen->height)
|
||||
{
|
||||
pScreenPriv = GetScreenPrivate (pScreen);
|
||||
if (!pointer->confined)
|
||||
if (!pPointer->confined)
|
||||
{
|
||||
newScreen = pScreen;
|
||||
(*pScreenPriv->screenFuncs->CursorOffScreen) (&newScreen, x, y);
|
||||
|
@ -550,22 +557,23 @@ miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y, unsigned long time)
|
|||
(*pScreenPriv->screenFuncs->NewEventScreen) (pScreen, FALSE);
|
||||
pScreenPriv = GetScreenPrivate (pScreen);
|
||||
/* Smash the confine to the new screen */
|
||||
pointer->limits.x2 = pScreen->width;
|
||||
pointer->limits.y2 = pScreen->height;
|
||||
pPointer->limits.x2 = pScreen->width;
|
||||
pPointer->limits.y2 = pScreen->height;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Constrain the sprite to the current limits. */
|
||||
if (*x < pointer->limits.x1)
|
||||
*x = pointer->limits.x1;
|
||||
if (*x >= pointer->limits.x2)
|
||||
*x = pointer->limits.x2 - 1;
|
||||
if (*y < pointer->limits.y1)
|
||||
*y = pointer->limits.y1;
|
||||
if (*y >= pointer->limits.y2)
|
||||
*y = pointer->limits.y2 - 1;
|
||||
if (*x < pPointer->limits.x1)
|
||||
*x = pPointer->limits.x1;
|
||||
if (*x >= pPointer->limits.x2)
|
||||
*x = pPointer->limits.x2 - 1;
|
||||
if (*y < pPointer->limits.y1)
|
||||
*y = pPointer->limits.y1;
|
||||
if (*y >= pPointer->limits.y2)
|
||||
*y = pPointer->limits.y2 - 1;
|
||||
|
||||
if (pointer->x == *x && pointer->y == *y && pointer->pScreen == pScreen)
|
||||
if (pPointer->x == *x && pPointer->y == *y &&
|
||||
pPointer->pScreen == pScreen)
|
||||
return;
|
||||
|
||||
miPointerMoved(pDev, pScreen, *x, *y, time);
|
||||
|
@ -589,8 +597,8 @@ miPointerGetPosition(DeviceIntPtr pDev, int *x, int *y)
|
|||
else
|
||||
#endif
|
||||
{
|
||||
*x = miPointer.x;
|
||||
*y = miPointer.y;
|
||||
*x = miPointer->x;
|
||||
*y = miPointer->y;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -605,30 +613,30 @@ void
|
|||
miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
|
||||
unsigned long time)
|
||||
{
|
||||
miPointerPtr pointer;
|
||||
miPointerPtr pPointer;
|
||||
SetupScreen(pScreen);
|
||||
|
||||
#ifdef MPX
|
||||
if (IsMPDev(pDev))
|
||||
pointer = &miMPPointers[pDev->id];
|
||||
pPointer = &miMPPointers[pDev->id];
|
||||
else
|
||||
#endif
|
||||
pointer = &miPointer;
|
||||
pPointer = miPointer;
|
||||
|
||||
if (pDev && (pDev->coreEvents || pDev == inputInfo.pointer
|
||||
#ifdef MPX
|
||||
|| pDev->isMPDev
|
||||
#endif
|
||||
) &&
|
||||
!pScreenPriv->waitForUpdate && pScreen == miPointer.pSpriteScreen)
|
||||
!pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
|
||||
{
|
||||
pointer->devx = x;
|
||||
pointer->devy = y;
|
||||
if(!pointer->pCursor->bits->emptyMask)
|
||||
pPointer->devx = x;
|
||||
pPointer->devy = y;
|
||||
if(!pPointer->pCursor->bits->emptyMask)
|
||||
(*pScreenPriv->spriteFuncs->MoveCursor) (pDev, pScreen, x, y);
|
||||
}
|
||||
|
||||
pointer->x = x;
|
||||
pointer->y = y;
|
||||
pointer->pScreen = pScreen;
|
||||
pPointer->x = x;
|
||||
pPointer->y = y;
|
||||
pPointer->pScreen = pScreen;
|
||||
}
|
||||
|
|
|
@ -355,7 +355,7 @@ ProcXFixesGetCursorImage (ClientPtr client)
|
|||
pCursor = CursorCurrent;
|
||||
if (!pCursor)
|
||||
return BadCursor;
|
||||
GetSpritePosition (&x, &y);
|
||||
GetSpritePosition (inputInfo.pointer, &x, &y);
|
||||
width = pCursor->bits->width;
|
||||
height = pCursor->bits->height;
|
||||
npixels = width * height;
|
||||
|
@ -503,7 +503,7 @@ ProcXFixesGetCursorImageAndName (ClientPtr client)
|
|||
pCursor = CursorCurrent;
|
||||
if (!pCursor)
|
||||
return BadCursor;
|
||||
GetSpritePosition (&x, &y);
|
||||
GetSpritePosition (inputInfo.pointer, &x, &y);
|
||||
width = pCursor->bits->width;
|
||||
height = pCursor->bits->height;
|
||||
npixels = width * height;
|
||||
|
|
|
@ -60,7 +60,7 @@ int nAxes, i, count;
|
|||
if (nAxes > 6)
|
||||
nAxes = 6;
|
||||
|
||||
GetSpritePosition(&x,&y);
|
||||
GetSpritePosition(dev, &x,&y);
|
||||
btn= (deviceKeyButtonPointer *) &events[0];
|
||||
val= (deviceValuator *) &events[1];
|
||||
if (press) btn->type= DeviceButtonPress;
|
||||
|
|
|
@ -49,7 +49,7 @@ DevicePtr ptr;
|
|||
|
||||
if ((ptr = LookupPointerDevice())==NULL)
|
||||
return;
|
||||
GetSpritePosition(&x,&y);
|
||||
GetSpritePosition(inputInfo.pointer, &x,&y);
|
||||
ev.u.u.type = event;
|
||||
ev.u.u.detail = button;
|
||||
ev.u.keyButtonPointer.time = GetTimeInMillis();
|
||||
|
|
|
@ -53,7 +53,7 @@ XkbDDXFakePointerMotion(unsigned flags,int x,int y)
|
|||
int oldX,oldY;
|
||||
ScreenPtr pScreen, oldScreen;
|
||||
|
||||
GetSpritePosition(&oldX, &oldY);
|
||||
GetSpritePosition(inputInfo.pointer, &oldX, &oldY);
|
||||
pScreen = oldScreen = GetSpriteWindow()->drawable.pScreen;
|
||||
|
||||
#ifdef PANORAMIX
|
||||
|
|
|
@ -875,7 +875,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(xkbi->device);
|
|||
if ((filter->keycode!=0)&&(filter->keycode!=keycode))
|
||||
return 1;
|
||||
|
||||
GetSpritePosition(&x,&y);
|
||||
GetSpritePosition(inputInfo.pointer, &x,&y);
|
||||
ev.u.keyButtonPointer.time = GetTimeInMillis();
|
||||
ev.u.keyButtonPointer.rootX = x;
|
||||
ev.u.keyButtonPointer.rootY = y;
|
||||
|
|
Loading…
Reference in New Issue