[PATCH synaptics 3/5] Only move the cursor when one touch is on a touchpad

Chase Douglas chase.douglas at canonical.com
Wed Feb 1 15:50:17 PST 2012


Otherwise, we might post motion events and touch events for the same
physical interaction.

Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
---
 src/synaptics.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index 8db1467..ee7b847 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2014,8 +2014,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;
@@ -2025,7 +2024,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;
-- 
1.7.8.3



More information about the xorg-devel mailing list