touchpad: always call into the the tap state machine
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 5 Jun 2014 06:22:52 +0000 (16:22 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 12 Jun 2014 00:29:26 +0000 (10:29 +1000)
commitfc51daff73960d96d5500c54d1223f4ffc47a6c1
tree6ebdf34e1e0fec0e41f9cabe924a349566fbce07
parent4ddd19d6bd84676cce3ba512439b36365ce9406c
touchpad: always call into the the tap state machine

A button event consumed by the softbutton or clickpad code does not feed into
the tap state machine, leaving it in its current state. The touch generating
that event however may have triggered state changes.

For some tap/click combinations this gives us either double press/release
events or an inconsistent order of events. Those issues include:
* a really short physical click causes a click + tap-click
* a really short physical click on the right software button causes a right
  click + left tap-click
* tap + click causes double button left press events

To avoid these, notify the tap code that a button event has occured and
process that accordingly. Depending on the state this may either continue to
the DEAD state or release the current tap button and then go to the DEAD
state.

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