summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriele Mazzotta <gabriele.mzt@gmail.com>2014-07-27 12:58:18 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2014-09-17 14:48:51 +1000
commitae77fdfc8e57e612e8aa0e9b45bbea478a82c30b (patch)
treead0e92e6aaca823546c27c20e3fb2f1086c2cf81
parentcbf0ca508a14201d2c25f96dd6f38cea2cb1954b (diff)
Prevent two-finger taps from being ignored
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. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 7d0ff39519e4d3760722b914883bee276035061c)
-rw-r--r--src/synaptics.c5
1 files 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) {