Signed-off-by: Chase Douglas <[email protected]>
---
 src/synaptics.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index b4128d6..648404b 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1889,10 +1889,13 @@ HandleTapProcessing(SynapticsPrivate *priv, struct 
SynapticsHwState *hw,
            hw->left = 0;
        break;
     case TS_CLICKPAD_MOVE:
+       if (hw->numFingers > 1)
+           hw->numFingers--;
        SetMovingState(priv, MS_TOUCHPAD_RELATIVE, now);
        if (!hw->left && !hw->right && !hw->middle) {
            SetMovingState(priv, MS_FALSE, now);
            SetTapState(priv, TS_MOVE, now);
+           priv->count_packet_finger = 0;
        }
        break;
     }
@@ -2777,6 +2780,14 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState 
*hw, CARD32 now,
     if (para->touchpad_off == 1)
        return delay;
 
+    /* If a physical button is pressed on a clickpad, use cumulative touch
+     * movements for motion */
+    if (para->clickpad && (hw->left || hw->right || hw->middle))
+    {
+        hw->x = hw->cumulative_dx;
+        hw->y = hw->cumulative_dy;
+    }
+
     /* apply hysteresis before doing anything serious. This cancels
      * out a lot of noise which might surface in strange phenomena
      * like flicker in scrolling or noise motion. */
-- 
1.7.8.3

_______________________________________________
[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