Date: Mon, 10 Jun 2024 18:37:50 +0000 From: bugzilla-noreply@freebsd.org To: usb@FreeBSD.org Subject: [Bug 279652] [patch] wsp.c: Improve multi-finger touchpad usage and allow more configurations Message-ID: <bug-279652-19105@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D279652 Bug ID: 279652 Summary: [patch] wsp.c: Improve multi-finger touchpad usage and allow more configurations Product: Base System Version: 13.3-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: usb Assignee: usb@FreeBSD.org Reporter: megamansec@gmail.com Created attachment 251363 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D251363&action= =3Dedit Allow multi-finger scrolling following a single-click, and add max_finger_a= rea and max_double_tap_distance tunables. The wsp driver does not currently correctly allow the movement of the track= pad using two fingers while a single button is held down: that is to say, durin= g a single-button click, it is only possible to move the cursor using the same finger that is clicking. This patch provides support for the movement using a second finger, which is in-line with how MacOS supports this trackpad: a single button click can be moved using either the original finger or a secondary finger on the trackpad following the first click. It appears that this was originally missed by the developer, as the comments suggest that the variables holding the position arrays should be arrays, however they were not: int16_t pre_pos_x; /* previous position array */ int16_t pre_pos_y; /* previous position array */ This patch makes them arrays of int16_t, in-line with the "finger index dat= a" and "position array" arrays. In addition, this patch also creates two tunables: hw.usb.wsp.max_finger_area hw.usb.wsp.max_double_tap_distance max_finger_area is the maximum area that a finger may take up on the trackp= ad to be registered as a finger. Previously, it was hardcoded 1200. This value= was too low to register a thumb-click, which MacOS does correctly. max_double_tap_distance is the maximum distance between two fingers which permit a two-finger-click to be registered as a double-click. Previously, t= his was hardcoded as 2500, and that is left as the default. Note: this patch follows https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D279649. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-279652-19105>