summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2012-02-02 13:19:16 -0800
committerPeter Hutterer <peter.hutterer@who-t.net>2012-02-06 23:51:54 +1000
commit3822705204f454fea6cc0bf61904c4b7186abee2 (patch)
treed0e997b0236c1aa1b150f3eeb18fe24ebd91ff54
parentdfdcf8b34363ed2504347d00957a3606f82c0b0d (diff)
Only move the cursor when one touch is on a touchpad
Otherwise, we might post motion events and touch events for the same physical interaction. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/synaptics.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/synaptics.c b/src/synaptics.c
index 181e88a..c3df66e 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2013,8 +2013,7 @@ ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
case TS_1:
case TS_3:
case TS_5:
- if (hw->numFingers == 1)
- moving_state = MS_TOUCHPAD_RELATIVE;
+ moving_state = MS_TOUCHPAD_RELATIVE;
break;
default:
break;
@@ -2024,7 +2023,8 @@ ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw,
if (!inside_area || !moving_state || priv->finger_state == FS_BLOCKED ||
priv->vert_scroll_edge_on || priv->horiz_scroll_edge_on ||
priv->vert_scroll_twofinger_on || priv->horiz_scroll_twofinger_on ||
- priv->circ_scroll_on || priv->prevFingers != hw->numFingers)
+ priv->circ_scroll_on || priv->prevFingers != hw->numFingers ||
+ (moving_state == MS_TOUCHPAD_RELATIVE && hw->numFingers != 1))
{
/* reset packet counter. */
priv->count_packet_finger = 0;