The pad has an abswheel too, normalizing this into the rotation range
screws the coordinates.

Signed-off-by: Peter Hutterer <[email protected]>
---
 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

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to