diff options
author | Chase Douglas <chase.douglas@canonical.com> | 2012-02-02 13:19:16 -0800 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-02-06 23:51:54 +1000 |
commit | 3822705204f454fea6cc0bf61904c4b7186abee2 (patch) | |
tree | d0e997b0236c1aa1b150f3eeb18fe24ebd91ff54 /src | |
parent | dfdcf8b34363ed2504347d00957a3606f82c0b0d (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/synaptics.c | 6 |
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; |