diff options
author | Gabriele Mazzotta <gabriele.mzt@gmail.com> | 2014-07-27 12:58:18 +0200 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-08-14 15:53:55 +1000 |
commit | 7d0ff39519e4d3760722b914883bee276035061c (patch) | |
tree | 7706181d72e779cc405214ac39dcf96db146aadf /src | |
parent | a36edf8307ab9b5bffca103dd875623a66012c0b (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/synaptics.c | 5 |
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) { |