keyman icon indicating copy to clipboard operation
keyman copied to clipboard

fix(web): early gesture-match abort when unable to extend existing gestures 🪠

Open jahorton opened this issue 1 year ago • 1 comments

Addresses part of #10592.

Continues from #10778.

The gesture-matching process has a window of opportunity to "cancel" too early due to the asynchronous delays needed to support change-of-state (in KMW, change of layer) when one gesture is auto-completed by a newly-incoming touch. If the new touch isn't included with an existing gesture, pending an opportunity to match, the process may unintendedly "skip" treating the new touch as its own gesture.

In KMW, a simple-tap can be auto-completed by another simple-tap, and this auto-complete can trigger a layer shift. The new tap is then treated as its own gesture.

At this specific stage... this actually doesn't happen - we got lucky. But... that luck did come with its own cost, and the next PR in the chain will be, uh, "removing" said "luck" in order to fix a significant contributing factor to #10592.

@keymanapp-test-bot skip

As this PR seeks to address a host of related known errors but only fixes a bit of them, specifying a proper user test at this point would be quite tricky. #10843 will host the main user testing suite for this PR chain, as it exists as the final "rung" of this PR "ladder."

jahorton avatar Feb 26 '24 04:02 jahorton

Changes in this pull request will be available for download in Keyman version 17.0.301-beta

keyman-server avatar Apr 03 '24 18:04 keyman-server