Signed-off-by: Chase Douglas <chase.doug...@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 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel