-
-
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
bug(web): Rapid typing on first caps letter sometimes gives TWo cap letters (touch) 🐵 #7173
Comments
I (@jahorton) have been able to confirm that this Sentry event is highly related. Sentry issue: KEYMAN-WEB-4J Repro: using
Corresponding events to the one linked above should appear on Sentry. In essence, this happens when two touches are near-simultaneous. If touch 1 is for a switch key, it takes a little time for JS and the browser's renderer to complete the OSK layer-switching operation; it's quite possible for touch 2 to arrive while the original layer is still in place. In such a case, touch 2 will register against the corresponding key on the original layer, leading to this error - the selected key is not on the current layer at the time that touch 2 gets processed. |
A bit of further thought here: a similar (Sentry) issue arose with #6898, which has been mitigated by #7543. In that case, the issue arises from the wholesale swapping of the active keyboard - an operation that is particularly asynchronous if the keyboard being swapped in has not yet been loaded. In this case, the issue is that we're swapping the layer during JS event processing, rather than the keyboard - but the overall pattern is the same - a swap in active state occurs during JS event processing before the second event has a chance to start, especially since JS is explicitly single-threaded and doesn't do interrupts. Noting the mitigation strategy taken by #7543, a similar strategy (using closure-based handlers that lock in the touch's original active layer) could be used to nullify the Sentry error report linked above. That said, the base issue posted here - the "TWo caps letters" issue - would remain. |
A possible strategy to resolve the "TWo caps" issue instead would require a bigger rework, but it's something that the The core of this strategy: part of our fat-finger algorithm (see |
Seems like a good possibility.
Agreed. |
@mcdurdin I am able to reproduce this issue with the latest Keyman 17.0.205 alpha build in Android OS . (Version 5, 9 and 12) |
That sounds correct; the fixes are currently only on the feature-gestures feature branch. |
@jahorton this apparently failed with 17.0.238-alpha (see #10598), but this was apparently fixed with 17.0.230-alpha with the merge of #7324. Are you able to follow up with @bharanidharanj? |
Describe the bug
Repro: Press Shift, type two letters very rapidly. They will both get capitalized. (Two thumb typing)
Per @jahorton:
Screenshots
Screen_Recording_20220831-061413_Keyman.mp4
Keyman for Windows/macOS/Linux/iPhone/iPad/Android:
The text was updated successfully, but these errors were encountered: