mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-15 13:50:33 +01:00
Revert "dix: don't XWarpPointer through the last slave anymore (#38313)"
This reverts commit bbe6a69da3.
This commit caused a regression.
See: http://xquartz.macosforge.org/trac/ticket/517#comment:10
This commit is contained in:
parent
0bffe6b38c
commit
2d6760f591
1 changed files with 7 additions and 14 deletions
21
dix/events.c
21
dix/events.c
|
|
@ -3351,21 +3351,16 @@ XineramaWarpPointer(ClientPtr client)
|
|||
{
|
||||
WindowPtr dest = NULL;
|
||||
int x, y, rc;
|
||||
DeviceIntPtr dev;
|
||||
SpritePtr pSprite;
|
||||
SpritePtr pSprite = PickPointer(client)->spriteInfo->sprite;
|
||||
|
||||
REQUEST(xWarpPointerReq);
|
||||
|
||||
|
||||
if (stuff->dstWid != None) {
|
||||
rc = dixLookupWindow(&dest, stuff->dstWid, client, DixReadAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Post through the XTest device */
|
||||
dev = PickPointer(client);
|
||||
dev = GetXTestDevice(dev);
|
||||
pSprite = dev->spriteInfo->sprite;
|
||||
x = pSprite->hotPhys.x;
|
||||
y = pSprite->hotPhys.y;
|
||||
|
||||
|
|
@ -3415,9 +3410,9 @@ XineramaWarpPointer(ClientPtr client)
|
|||
else if (y >= pSprite->physLimits.y2)
|
||||
y = pSprite->physLimits.y2 - 1;
|
||||
if (pSprite->hotShape)
|
||||
ConfineToShape(dev, pSprite->hotShape, &x, &y);
|
||||
ConfineToShape(PickPointer(client), pSprite->hotShape, &x, &y);
|
||||
|
||||
XineramaSetCursorPosition(dev, x, y, TRUE);
|
||||
XineramaSetCursorPosition(PickPointer(client), x, y, TRUE);
|
||||
|
||||
return Success;
|
||||
}
|
||||
|
|
@ -3435,7 +3430,7 @@ ProcWarpPointer(ClientPtr client)
|
|||
WindowPtr dest = NULL;
|
||||
int x, y, rc;
|
||||
ScreenPtr newScreen;
|
||||
DeviceIntPtr dev, tmp, xtest_dev = NULL;
|
||||
DeviceIntPtr dev, tmp;
|
||||
SpritePtr pSprite;
|
||||
|
||||
REQUEST(xWarpPointerReq);
|
||||
|
|
@ -3448,13 +3443,11 @@ ProcWarpPointer(ClientPtr client)
|
|||
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixWriteAccess);
|
||||
if (rc != Success)
|
||||
return rc;
|
||||
if (IsXTestDevice(tmp, dev))
|
||||
xtest_dev = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/* Use the XTest device to actually move the pointer */
|
||||
dev = xtest_dev;
|
||||
if (dev->lastSlave)
|
||||
dev = dev->lastSlave;
|
||||
pSprite = dev->spriteInfo->sprite;
|
||||
|
||||
#ifdef PANORAMIX
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue