From 3822705204f454fea6cc0bf61904c4b7186abee2 Mon Sep 17 00:00:00 2001 From: Chase Douglas Date: Thu, 2 Feb 2012 13:19:16 -0800 Subject: 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 Signed-off-by: Peter Hutterer --- src/synaptics.c | 6 +++--- 1 file 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; -- cgit v1.2.3