JitouchApp / Jitouch

A multi-touch extension for MacBook, Magic Mouse, and Magic Trackpad
GNU General Public License v3.0
391 stars 28 forks source link

Add Four-Finger Tap trackpad gesture #38

Closed aaronkollasch closed 1 year ago

aaronkollasch commented 1 year ago

Adds a four-finger tap gesture. Because this gesture is similar to the Tab4 gestures (Index-To-Pinky/Pinky-To-Index), it will only dispatch the gesture if Tab4 has not been triggered from the same gesture.

An exception to this rule is if the four-finger tap gesture is performed as a "one-fix three-tap" gesture (see the second example animation in the four-finger tap gesture preview). In this case, if the three-tap fingers appear in the right order, a Tab4 gesture could be waiting to trigger when the last finger is raised, and the 4-tap gesture could be held up waiting to see if the Tab4 triggers or not. In order to not suspend the 4-tap gesture too long in this case, 4-tap will trigger after a delay of clickSpeed/2, and cancel the pending Tab4 gesture. clickSpeed/2 is used instead of clickSpeed as a balance between failing to detect Tab4 gestures and delaying a one-fix three-tap too long. If the user intends to perform a Tab4 gesture, then by the time only one finger is present, they should already be in the process of raising all fingers including the last one, so we do not need to wait the full clickSpeed delay.

Fixes #25

aaronkollasch commented 1 year ago

In testing, this is occasionally a bit sensitive to an extra finger brushing the trackpad while performing some gestures, for example, a three-finger tap. However, I think it generally works as expected, and Index-to-Pinky/Pinky-to-Index are almost unchanged, except if the last finger stays on the trackpad too long.