touchpad: always reset the motion history on finger changes
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 29 Aug 2016 00:47:08 +0000 (10:47 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 29 Aug 2016 10:10:50 +0000 (20:10 +1000)
commitaa87d2b25b88b86ddd1471f65e1afceff7fca9c4
treef4f02f04ca275fa95edff57467b7b24a4ef3b4b5
parentbc9e9267f0f67ea4562a053f8ff94e94790243e3
touchpad: always reset the motion history on finger changes

We've already been doing this for semi-mt devices and for non-clickpads but
let's do it for clickpads as well. On Synaptics touchpads (PS/2 and RMI4)
we see slot jumps where two slots are active, slot X ends but slot Y continues
with the other slot's positional data. This causes a cursor jump on finger
lift after a two-finger scrolling motion. Simply resetting the motion history fixes it.

The only multi-finger interaction where a user could expect perfect fluid
motion is when using a second finger to touch cone of the software button
areas. Let's see if we have complaints first before we implement something
more complex.

https://bugs.freedesktop.org/show_bug.cgi?id=91695

Signed-off-by:Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/evdev-mt-touchpad.c
test/touchpad.c