Commit 51b6bf3c authored by Peter Hutterer's avatar Peter Hutterer
Browse files

On clickpads with two touchpoints, try to detect clickfinger 3 actions



Some touchpads provide BTN_TOOL_TRIPLETAP but do not track more than two
touchpoints. For those, try to detect clickfinger3 actions as best as we can.
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 9388b54a109bbd634e05611e6c90110d698f13d1)
parent 49fe70e9
......@@ -2507,6 +2507,28 @@ clickpad_guess_clickfingers(SynapticsPrivate * priv,
close_point >>= 1;
}
/* Some trackpads touchpad only track two touchpoints but announce
BTN_TOOL_TRIPLETAP (which sets hw->numFingers to 3).
This can affect clickfingers, in the following ways:
* one finger down: normal click
* two fingers down, close together: 2 finger click
* two fingers down, apart: normal click
* three fingers down, close together: 3 finger click
* three fingers down, with two grouped next to each other: should be
* 2-finger click but we can't detect this.
* so: if two detected fingers are close together and HW says three
* fingers, make it three fingers.
* if two detected fingers are apart and HW says three fingers, make
* it a two-finger click, guessing that the third finger is somewhere
* close to another finger.
*/
if (hw->numFingers >= 3 && nfingers < hw->numFingers) {
if (!nfingers) /* touchpoints too far apart */
nfingers = 2;
else
nfingers++;
}
return nfingers;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment