-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(web): blocks nextLayer for keys quickly typed when multitapping to new layer when final tap is held #11189
Conversation
User Test ResultsTest specification and instructions
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Test Results
keyboarderr.mp4 |
The keyboard error detected corresponds to #11165, the fix for which (#11178) only just merged in. The Sentry event: https://keyman.sentry.io/share/issue/799c39d76ad541c9b9ed7d65aac52ce1/ (Confirmed by matching release: While I could override... this is also based directly on @keymanapp-test-bot retest all |
Test Results
|
Changes in this pull request will be available for download in Keyman version 17.0.305-beta |
Fixes #11187.
This fixes an issue where a held layer-swap was being cancelled incorrectly upon use of an output key. Conditions needed for the error to trigger:
To be clear, if there's a pause before keys are tapped (enough to wait out that "lock in" timer) but the scenario is otherwise the same, that is working already.
Turns out that I missed something small in #10838, with its changes being why this specific behavior broke. The efforts to avoid an asynchronous infinite loop, as implemented, caused the ongoing gesture to self-cancel at the exact point when it should have transitioned to the "locked-in modipress" state. With a small tweak to the logic, we can allow post-init model rejection to still trigger replacement while ensuring init-time model rejection still auto-cancels, which preserves #10838's fix while fixing #11187 as well.
User Testing
TEST_NUMERIC_MULTITAP: Using Keyman for Android and
sil_euro_latin
...