In order to distinguish tap gestures from short movements, the touchpad input driver in wsmouse checks whether the distance between the initial and the last position of a touch exceeds the 'maxdist' limit. Some touchpads provide unreliable coordinates when more than one contact is being made simultaneously, and in this case the filter may be too strong - and superfluous, because only one-finger contacts should trigger pointer movement; it should be safe to skip the test for multi-finger contacts (with Non-MT-touchpads, it isn't possible anyway).
OK? Index: dev/wscons/wstpad.c =================================================================== RCS file: /cvs/src/sys/dev/wscons/wstpad.c,v retrieving revision 1.28 diff -u -p -r1.28 wstpad.c --- dev/wscons/wstpad.c 21 Mar 2021 16:20:49 -0000 1.28 +++ dev/wscons/wstpad.c 23 Mar 2021 09:09:42 -0000 @@ -657,14 +657,8 @@ wstpad_is_tap(struct wstpad *tp, struct struct timespec ts; int dx, dy, dist = 0; - /* - * No distance limit applies if there has been more than one contact - * on a single-touch device. We cannot use (t->x - t->orig.x) in this - * case. Accumulated deltas might be an alternative, but some - * touchpads provide unreliable coordinates at the start or end of a - * multi-finger touch. - */ - if (IS_MT(tp) || tp->tap.contacts < 2) { + /* Try to distinguish one-finger taps from short movements. */ + if (tp->tap.contacts == (tp->ignore ? 2 : 1)) { dx = abs(t->x - t->orig.x) << 12; dy = abs(t->y - t->orig.y) * tp->ratio; dist = (dx >= dy ? dx + 3 * dy / 8 : dy + 3 * dx / 8);