Commit 420e0abe (Guess the number of clickpad ClickFingers based on finger distance) introduced limiting the number of fingers involved in a multifinger click by putting a maximum distance between pairs of fingers.
However, with a three finger click, with all fingers close together, all three possible pairs of fingers can be separated by less the tested distance. Thus a click involving four fingers is reported.
This leads to a situation where you are required to three finger click with your fingers not too close together, but also not too far apart...
This could be fixed by adding something like:
if(nfingers > hw->num_mt_mask - 1) nfingers = hw->num_mt_mask - 1;
above the return statement in clickpad_guess_clickfingers. This would have the advantage of allowing the percentage touchpad width that pairs of fingers are required to be within to be increased, as 30% is quite small for some touchpads.
Created attachment 59706 [details] [review]
I don't have hardware to test this, please do so. You'll also need http://patchwork.freedesktop.org/patch/9827/ for the new define.
That patch corrects the overcounting of fingers issue. Now when I three finger click, three or less fingers are detected (depending on separation).
New patch, fixes bug in previous algorithm: http://patchwork.freedesktop.org/patch/9906/
Author: Peter Hutterer <email@example.com>
Date: Tue Apr 10 13:06:49 2012 +1000
Don't count fingers twice when guessing distance (#48316)