fix(web): early gesture-match abort when unable to extend existing gestures ðŸª
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."
User Test Results
Test specification and instructions
User tests are not required
Test Artifacts
- Android
- Developer
-
iOS
- Keyman for iOS (simulator image)
- FirstVoices Keyboards for iOS (simulator image)
-
TestFlight internal PR build version -
17.0.296 (0.10836.10624)
- Keyboards
- Web
- Windows
Changes in this pull request will be available for download in Keyman version 17.0.301-beta