aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-09-03 09:49:31 +0200
committermarha <marha@users.sourceforge.net>2012-09-04 14:23:31 +0200
commit77f54d0b20cc194e708bc664740e4c0b0e13c3dd (patch)
tree491b3b610adf480f360b8e5dccb0d7238d279caa
parent4ffbbb051b0924ccfb9b0354cca84f93558824cc (diff)
downloadvcxsrv-77f54d0b20cc194e708bc664740e4c0b0e13c3dd.tar.gz
vcxsrv-77f54d0b20cc194e708bc664740e4c0b0e13c3dd.tar.bz2
vcxsrv-77f54d0b20cc194e708bc664740e4c0b0e13c3dd.zip
Reverted xorg commit bafbd99080be49a17be97d2cc758fbe623369945:
dix: work around scaling issues during WarpPointer (#53037) Gave problems in vcsrv on multiple monitors
-rw-r--r--xorg-server/dix/getevents.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c
index 04e1d6b7e..9a350388b 100644
--- a/xorg-server/dix/getevents.c
+++ b/xorg-server/dix/getevents.c
@@ -1348,7 +1348,6 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
RawDeviceEvent *raw;
double screenx = 0.0, screeny = 0.0; /* desktop coordinate system */
double devx = 0.0, devy = 0.0; /* desktop-wide in device coords */
- int sx, sy; /* for POINTER_SCREEN */
ValuatorMask mask;
ScreenPtr scr;
@@ -1391,11 +1390,8 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
/* valuators are in driver-native format (rel or abs) */
if (flags & POINTER_ABSOLUTE) {
- if (flags & POINTER_SCREEN) { /* valuators are in screen coords */
- sx = valuator_mask_get(&mask, 0);
- sy = valuator_mask_get(&mask, 1);
+ if (flags & POINTER_SCREEN) /* valuators are in screen coords */
scale_from_screen(pDev, &mask);
- }
transformAbsolute(pDev, &mask);
clipAbsolute(pDev, &mask);
@@ -1413,18 +1409,6 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
/* valuators are in device coordinate system in absolute coordinates */
scale_to_desktop(pDev, &mask, &devx, &devy, &screenx, &screeny);
-
- /* #53037 XWarpPointer's scaling back and forth between screen and
- device may leave us with rounding errors. End result is that the
- pointer doesn't end up on the pixel it should.
- Avoid this by forcing screenx/screeny back to what the input
- coordinates were.
- */
- if (flags & POINTER_SCREEN) {
- screenx = sx;
- screeny = sy;
- }
-
scr = positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,
&mask, &devx, &devy, &screenx, &screeny);