Make sure the end of a motion is correctly detected even if the hardware

does not always report a 0 'w' value for two-finger contacts.

Diff from Ulf Brosziewski.

Fix a regression with Synaptics touchpads reported by Patrick keshishian
and Henrik Friedrichsen on misc@.

ok matthieu@, deraadt@
This commit is contained in:
mpi 2015-03-06 22:49:34 +00:00
parent f149319ba0
commit f19ea1ac3a

View File

@ -217,6 +217,14 @@ WSConsReadHwState(InputInfoPtr pInfo,
if (hw->z == 0) {
hw->fingerWidth = 0;
hw->numFingers = 0;
} else if (hw->numFingers == 0) {
/*
* Because W may be 0 already, a two-finger touch on a
* Synaptics touchpad doesn't necessarily produce an update
* event for W.
*/
hw->fingerWidth = 5;
hw->numFingers = 2;
}
hw->millis = 1000 * event.time.tv_sec + event.time.tv_nsec / 1000000;
SynapticsCopyHwState(hwRet, hw);