This commit introduced a regression. On some touchpads, the pointer keeps moving in the last direction when the finger movement stops but the finger is left on the touchpad.
Cause appears to be get_delta() which calculates the deltas based on the motion history but has no control flow for the lack of fake motion events in the history after this commit. Thus, under some conditions, the delta is always non-zero as the history does not change. Reproducer attached to bug https://bugs.freedesktop.org/show_bug.cgi?id=45278#c11 X.Org Bug 45278 <http://bugs.freedesktop.org/show_bug.cgi?id=45278> This reverts commit c8b098214b44cf0585d78c460401ea7d143769f3. Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- There is probably a more extensive fix, starting with figuring out why the timer still fires after enough movement to adding hooks for ignoring the motion history if we're from a timer. This requires more time that I have available atm. src/synaptics.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/synaptics.c b/src/synaptics.c index 7b3f680..65b48ee 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -2887,7 +2887,7 @@ HandleState(InputInfoPtr pInfo, struct SynapticsHwState *hw, CARD32 now, priv->lastButtons = buttons; /* generate a history of the absolute positions */ - if (inside_active_area && !from_timer) + if (inside_active_area) store_history(priv, hw->x, hw->y, hw->millis); return delay; } -- 1.7.7.5 _______________________________________________ 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