On 03/21/2012 05:09 AM, Peter Hutterer wrote:
Regression introduced in 4e52cc0ef48145134cd58d357fb7289e6f8bb709
Raw event values are values as-is from the driver, modified only be
transformation or acceleration. 4e52cc caused the mask to be updated from
driver-submitted relative to device-absolute coordinates, and that mask was
then written into the raw events.
Move the raw event update into the respective branches for absolute/relative
events.
X.Org Bug 46976<http://bugs.freedesktop.org/show_bug.cgi?id=46976>
Signed-off-by: Peter Hutterer<[email protected]>
---
dix/getevents.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dix/getevents.c b/dix/getevents.c
index 5b9cef3..fd5998d 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1311,17 +1311,18 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr
pDev, int type,
transformAbsolute(pDev,&mask);
clipAbsolute(pDev,&mask);
+ if ((flags& POINTER_NORAW) == 0)
+ set_raw_valuators(raw,&mask, raw->valuators.data);
} else {
if (flags& POINTER_ACCELERATE)
accelPointer(pDev,&mask, ms);
+ if ((flags& POINTER_NORAW) == 0)
+ set_raw_valuators(raw,&mask, raw->valuators.data);
+
moveRelative(pDev,&mask);
}
/* valuators are in device coordinate system in absolute coordinates */
-
- if ((flags& POINTER_NORAW) == 0)
- set_raw_valuators(raw,&mask, raw->valuators.data);
-
scale_to_desktop(pDev,&mask,&devx,&devy,&screenx,&screeny);
scr = positionSprite(pDev, (flags& POINTER_ABSOLUTE) ? Absolute :
Relative,
&mask,&devx,&devy,&screenx,&screeny);
Reviewed-by: Simon Thum <[email protected]>
Cheers,
Simon
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel