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

feat(web): subkey-menu fat-finger correction 🐵 #9779

Merged
merged 7 commits into from
Oct 24, 2023

Conversation

jahorton
Copy link
Contributor

Fixes #4698.

Now that #9778 exists, we have a path forward to finally resolve an old hack:

// A temp-hack, as this was noted just before 14.0's release.
// Since a more... comprehensive solution would be way too complex this late in the game,
// this provides a half-decent stopgap measure.
//
// Will not correct to nearby subkeys; only includes the selected subkey and its base keys.
// Still, better than ignoring them both for whatever base key is beneath the final cursor location.

Subkey fat-finger corrections look simpler to handle / model than multitap corrections, so it seems wise to tackle them first in order to vet the sort of approach (and abstractions) that will be needed for multitaps and flicks down the line.

Furthermore, by fixing this now, we can finally sever the last tie held by VisualKeyboard code to the old-form spec used to distinguish between base key and subkey state. That, in turn, allows us to remove numerous references to old OSK code that is being replaced by the new gesture engine... once we also update the banner to use the gesture engine. Both the removal and the banner patch-up work will be performed in #9752.

@keymanapp-test-bot skip

@jahorton jahorton added this to the A17S24 milestone Oct 17, 2023
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Oct 17, 2023

User Test Results

Test specification and instructions

User tests are not required

Comment on lines +316 to +318
const altKey = pair.keySpec;
if(!altKey) {
console.warn("Potential fat-finger key could not be found in layer!");
console.warn("Internal error: failed to properly filter set of keys for corrections");
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 obviously is connected to this ongoing Sentry error: https://keyman.sentry.io/share/issue/977c8e43dc1b40ddb7f6948252a6118b/

Note that the new pattern directly uses the object that was previously retrieved by lookup. There will no longer be an inability to find the object.

Of course, that doesn't solve the whole problem - whatever had happened to the layer, and how whatever that is should be handled in relation to fat-fingering - but this should help us get closer to finding the root of the issue, even then.

@jahorton jahorton marked this pull request as ready for review October 20, 2023 07:30
@jahorton jahorton requested a review from mcdurdin as a code owner October 20, 2023 07:30
Base automatically changed from refactor/web/corrective-layout-abstraction to feature-gestures October 24, 2023 02:13
@jahorton jahorton merged commit aaba529 into feature-gestures Oct 24, 2023
2 checks passed
@jahorton jahorton deleted the feat/web/subkey-corrections branch October 24, 2023 02:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants