[PATCH xf86-input-synaptics 12/12] Ignore motion during touch count changes on semi-mt devices
Chase Douglas
chase.douglas at canonical.com
Thu Feb 9 18:53:06 PST 2012
Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
---
src/synaptics.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/src/synaptics.c b/src/synaptics.c
index 9d8f3ee..1f4bebd 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -1426,6 +1426,14 @@ ReadInput(InputInfoPtr pInfo)
SynapticsResetTouchHwState(hw);
while (SynapticsGetHwState(pInfo, priv, hw)) {
+ /* Semi-mt device touch slots do not track touches. When there is a
+ * change in the number of touches, we must disregard the temporary
+ * motion changes. */
+ if (priv->has_semi_mt && hw->numFingers != priv->hwState->numFingers) {
+ hw->cumulative_dx = priv->hwState->cumulative_dx;
+ hw->cumulative_dy = priv->hwState->cumulative_dy;
+ }
+
SynapticsCopyHwState(priv->hwState, hw);
delay = HandleState(pInfo, hw, hw->millis, FALSE);
newDelay = TRUE;
--
1.7.8.3
More information about the xorg-devel
mailing list