[PATCH synaptics] Prevent two-finger taps from being ignored

Gabriele Mazzotta gabriele.mzt at gmail.com
Sun Jul 27 03:58:18 PDT 2014


When two fingers are used, the coordinates of only one of them is taken into 
account. This can lead to sudden variations of the absolute coordinates when 
two-fingers taps are performed if the finger considered changes.

Take into account coordinates variations to prevent unwanted taps only if 
the number of fingers doesn't change.
---
 src/synaptics.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index b25c902..b49957c 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1960,8 +1960,9 @@ HandleTapProcessing(SynapticsPrivate * priv, struct SynapticsHwState *hw,
             (priv->tap_max_fingers <=
              ((priv->horiz_scroll_twofinger_on ||
                priv->vert_scroll_twofinger_on) ? 2 : 1)) &&
-            ((abs(hw->x - priv->touch_on.x) >= para->tap_move) ||
-             (abs(hw->y - priv->touch_on.y) >= para->tap_move)));
+            (priv->prevFingers == hw->numFingers &&
+             ((abs(hw->x - priv->touch_on.x) >= para->tap_move) ||
+              (abs(hw->y - priv->touch_on.y) >= para->tap_move))));
     press = (hw->left || hw->right || hw->middle);
 
     if (touch) {
-- 
2.0.1



More information about the xorg-devel mailing list