Change oldHwProx to oldCursorHwProx to better refect its use.

Protocol 5 distance starts from the MaxCursorDist (256) when
getting in the prox while protocol 4 distance is 0 when
getting in the prox.

oldCursorHwProx keeps the hardware in/out prox state so we can
we set the MaxCursorDist for the next round of relative cursor
movement when tool first comes in prox.

Signed-off-by: Ping Cheng <pingli...@gmail.com>
---
 src/wcmCommon.c     |   24 ++++++++++--------------
 src/wcmConfig.c     |    2 +-
 src/wcmUSB.c        |    4 ----
 src/xf86Wacom.c     |    6 ------
 src/xf86WacomDefs.h |    2 +-
 5 files changed, 12 insertions(+), 26 deletions(-)

diff --git a/src/wcmCommon.c b/src/wcmCommon.c
index 0f858eb..845cf6e 100644
--- a/src/wcmCommon.c
+++ b/src/wcmCommon.c
@@ -31,6 +31,8 @@
 #define THRESHOLD_TOLERANCE (FILTER_PRESSURE_RES / 125)
 #define DEFAULT_THRESHOLD (FILTER_PRESSURE_RES / 75)
 
+#define MAX_CURSOR_DISTANCE 256
+
 /* X servers pre 1.9 didn't copy data passed into xf86Post*Event.
  * Data passed in would be modified, requiring the driver to copy the
  * data beforehand.
@@ -1138,14 +1140,6 @@ static void commonDispatchDevice(WacomCommonPtr common, 
unsigned int channel,
        /* Device transformations come first */
        priv = pInfo->private;
 
-       if (IsUSBDevice(common))
-       {
-               if (IsTouch(priv) && !ds->proximity)
-                       priv->oldHwProx = 0;
-               else if (IsStylus(priv) || IsEraser(priv))
-                       priv->oldHwProx = 1;
-       }
-
        /* send a touch out for USB Tablet PCs */
        if (IsUSBDevice(common) && !IsTouch(priv)
                        && common->wcmTouchDefault && !priv->oldProximity)
@@ -1180,19 +1174,18 @@ static void commonDispatchDevice(WacomCommonPtr common, 
unsigned int channel,
                filtered.pressure = applyPressureCurve(priv,&filtered);
        }
 
-       else if (IsCursor(priv) && !priv->oldHwProx)
+       else if (IsCursor(priv) && !priv->oldCursorHwProx)
        {
                /* initial current max distance for Intuos series */
                if ((TabletHasFeature(common, WCM_ROTATION)) ||
                                (TabletHasFeature(common, WCM_DUALINPUT)))
-                       common->wcmMaxCursorDist = 256;
+                       common->wcmMaxCursorDist = MAX_CURSOR_DISTANCE;
                else
                        common->wcmMaxCursorDist = 0;
        }
 
-       /* Store current hard prox for next use */
-       if (!IsTouch(priv))
-               priv->oldHwProx = ds->proximity;
+       /* Store cursor hardware prox for next use */
+       priv->oldCursorHwProx = ds->proximity;
 
        /* User-requested filtering comes next */
 
@@ -1227,14 +1220,17 @@ static void commonDispatchDevice(WacomCommonPtr common, 
unsigned int channel,
        /* force out-prox when distance is outside wcmCursorProxoutDist for 
pucks */
        if (IsCursor(priv))
        {
-               /* force out-prox when distance is outside 
wcmCursorProxoutDist. */
                if (common->wcmProtocolLevel == WCM_PROTOCOL_5)
                {
+                       /* protocol 5 distance starts from the MaxCursorDist
+                        * when getting in the prox.
+                        */
                        if (common->wcmMaxCursorDist > filtered.distance)
                                common->wcmMaxCursorDist = filtered.distance;
                }
                else
                {
+                       /* protocol 4 distance is 0 when getting in the prox */
                        if (common->wcmMaxCursorDist < filtered.distance)
                                common->wcmMaxCursorDist = filtered.distance;
                }
diff --git a/src/wcmConfig.c b/src/wcmConfig.c
index 2bf0ed3..6235d3c 100644
--- a/src/wcmConfig.c
+++ b/src/wcmConfig.c
@@ -62,7 +62,7 @@ static int wcmAllocate(InputInfoPtr pInfo)
        priv->next = NULL;
        priv->pInfo = pInfo;
        priv->common = common;       /* common info pointer */
-       priv->oldHwProx = 1;         /* previous hardware proximity */
+       priv->oldCursorHwProx = 0;   /* previous cursor hardware proximity */
        priv->nPressCtrl [0] = 0;    /* pressure curve x0 */
        priv->nPressCtrl [1] = 0;    /* pressure curve y0 */
        priv->nPressCtrl [2] = 100;  /* pressure curve x1 */
diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 5f0dbe2..e65f24f 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -394,10 +394,6 @@ static void usbInitProtocol5(WacomCommonPtr common, const 
char* id,
 
        /* tilt enabled */
        common->wcmFlags |= TILT_ENABLED_FLAG;
-
-       /* reinitialize max here since 0 is for Graphire series */
-       common->wcmMaxCursorDist = 256;
-
 }
 
 static void usbInitProtocol4(WacomCommonPtr common, const char* id,
diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c
index 6762a3d..a124ed3 100644
--- a/src/xf86Wacom.c
+++ b/src/xf86Wacom.c
@@ -442,12 +442,6 @@ static int wcmDevInit(DeviceIntPtr pWcm)
 
        wcmRotateTablet(pInfo, common->wcmRotate);
 
-       if (IsTouch(priv))
-       {
-               /* hard prox out */
-               priv->oldHwProx = 0;
-       }
-
        InitWcmDeviceProperties(pInfo);
        XIRegisterPropertyHandler(pInfo->dev, wcmSetProperty, NULL, 
wcmDeleteProperty);
 
diff --git a/src/xf86WacomDefs.h b/src/xf86WacomDefs.h
index 5f5d969..0e57087 100644
--- a/src/xf86WacomDefs.h
+++ b/src/xf86WacomDefs.h
@@ -276,7 +276,7 @@ struct _WacomDeviceRec
        int oldThrottle;        /* previous throttle value */
        int oldButtons;         /* previous buttons state */
        int oldProximity;       /* previous proximity */
-       int oldHwProx;          /* previous hardware proximity */
+       int oldCursorHwProx;    /* previous cursor hardware proximity */
        int old_device_id;      /* last in prox device id */
        int old_serial;         /* last in prox tool serial number */
        int devReverseCount;    /* Relative ReverseConvert called twice each 
movement*/
-- 
1.7.4


------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to