Skip to content
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): fix osk touch-focus tracking #11705

Merged
merged 1 commit into from
Jun 7, 2024
Merged

Conversation

jahorton
Copy link
Contributor

@jahorton jahorton commented Jun 6, 2024

Fixes: #11704
Fixes: KEYMAN-WEB-HY. Turns out that the original variant of that issue was resolved with #11505, leaving only the current form in place. (Note: is not currently commit-tagged; I realized this later.)

The offending code attained its current form in #11462, wherein I converted this class from using a Record<,> Object-based "map" to an actual ES6 Map.

Before: Object.keys().
After: map.keys().

Object.keys() actually does return an array, while map.keys() does not. Fortunately, this means that the bug this fixes should only occur for 18.0-alpha.

User Testing

TEST_ATTEMPT_REPRO: Using Keyman for Android, attempt to reproduce #11704:

  1. Installed this PR's APK file and give all permissions to the application.
  2. Check the "Enable Keyman as system-wide keyboard" and set the keyboard as the default keyboard box on the settings page.
  3. Open the Keyman app.
  4. Press the "123" button.
  5. Press the "ELY(Shift) button.
  6. Press the "?i-"(Shift) button and move to the right side.
  7. Verify that no error-toast / error-notification appears.

Fixes: #11704
Also addresses _part_ of KEYMAN-WEB-HY, but not all variants.
@keymanapp-test-bot keymanapp-test-bot bot added the user-test-missing User tests have not yet been defined for the PR label Jun 6, 2024
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jun 6, 2024

User Test Results

Test specification and instructions

  • TEST_ATTEMPT_REPRO (PASSED): I tested this issue with the attached "Keyman 18.0.50-alpha-test-11705" build on an iOS mobile (physical device) environment. I followed the steps that were given under user testing. (No error appears on no error-toast / error-notification) It works well when pressing a button and moving in various directions. It does not show after pressing the shift key. Thank you.

Test Artifacts

@keymanapp-test-bot keymanapp-test-bot bot added this to the A18S3 milestone Jun 6, 2024
@keymanapp-test-bot keymanapp-test-bot bot added has-user-test user-test-required User tests have not been completed and removed user-test-missing User tests have not yet been defined for the PR labels Jun 6, 2024
@dinakaranr
Copy link

Test Results

  • TEST_ATTEMPT_REPRO (PASSED): I tested this issue with the attached "Keyman 18.0.50-alpha-test-11705" build on an iOS mobile (physical device) environment. I followed the steps that were given under user testing. (No error appears on no error-toast / error-notification) It works well when pressing a button and moving in various directions. It does not show after pressing the shift key. Thank you.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Jun 6, 2024
@jahorton jahorton merged commit 1fa19db into master Jun 7, 2024
16 checks passed
@jahorton jahorton deleted the fix/web/osk-focus-tracking branch June 7, 2024 00:59
@@ -13,10 +13,10 @@ export default class TouchEventPromiseMap {
}

public maintainTouches(list: TouchList) {
let keys = [].concat(this.map.keys());
let keys = Array.from(this.map.keys());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does #11732 have any impact on this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is outside of the worker.

We keep es6-shim around on Android and use it for devices with outdated WebViews; it'll cover this case well enough.

@keyman-server
Copy link
Collaborator

Changes in this pull request will be available for download in Keyman version 18.0.51-alpha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

bug(web): OSK focus-listener touch-tracking does not properly enumerate active touches
5 participants