Signed-off-by: Chase Douglas <[email protected]>
---
 src/synaptics.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/src/synaptics.c b/src/synaptics.c
index 0e1bac7..c249c98 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

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to