[PATCH] Don't normalize the abswheel unless it's from the stylus tool.
Peter Hutterer
peter.hutterer at who-t.net
Wed Nov 24 20:48:15 PST 2010
The pad has an abswheel too, normalizing this into the rotation range
screws the coordinates.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
src/wcmCommon.c | 8 ++++++--
src/wcmUSB.c | 9 ++-------
2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/wcmCommon.c b/src/wcmCommon.c
index 4579578..3e6e65f 100644
--- a/src/wcmCommon.c
+++ b/src/wcmCommon.c
@@ -578,17 +578,21 @@ void wcmSendEvents(InputInfoPtr pInfo, const WacomDeviceState* ds)
if (ds->proximity)
wcmRotateAndScaleCoordinates(pInfo, &x, &y);
- if (IsCursor(priv))
+ if (IsCursor(priv))
{
v3 = ds->rotation;
v4 = ds->throttle;
+
+ /* normalize abswheel airbrush data */
+ v5 = ds->abswheel * MAX_ROTATION_RANGE/(double)MAX_ABS_WHEEL + MIN_ROTATION;
+
}
else /* Intuos styli have tilt */
{
v3 = tx;
v4 = ty;
+ v5 = ds->abswheel;
}
- v5 = ds->abswheel;
DBG(6, priv, "%s prox=%d\tx=%d"
"\ty=%d\tz=%d\tv3=%d\tv4=%d\tv5=%d\tid=%d"
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 51161f0..79c05a8 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -835,13 +835,8 @@ static int usbParseAbsEvent(WacomCommonPtr common,
ds->distance = event->value;
break;
case ABS_WHEEL:
- {
- double norm = event->value *
- MAX_ROTATION_RANGE /
- (double)MAX_ABS_WHEEL;
- ds->abswheel = (int)norm + MIN_ROTATION;
- break;
- }
+ ds->abswheel = event->value;
+ break;
case ABS_Z:
ds->abswheel = event->value;
break;
--
1.7.3.2
More information about the xorg-devel
mailing list