Skip site navigation (1)Skip section navigation (2)
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>