[iOS] Filters out prefixed LTR/RTL marks from context.#1756
Merged
Conversation
Collaborator
jahorton
commented
May 6, 2019
added 5 commits
May 8, 2019 12:31
mcdurdin
approved these changes
May 14, 2019
Member
mcdurdin
left a comment
There was a problem hiding this comment.
This looks really good. Targeted, documented fix, that will be easy to tweak if the situation ever changes. Well done :) 👍
[iOS] Fixes issues with context reset ops.
This was referenced Nov 22, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1212.
As it turns out, our own code has been adding Unicode LTR and RTL markers to our extended
TextFieldandTextViewclass definitions as part of theirtextproperties. This marker was then copied into KMW and used as part of the context, which breaksnuland anynul-adjacentcontextstatements in keyboard code.To remedy this, we recognize that all text and caret communcation between apps (including Keyman) and the keyboard passes through
InputViewController, which can filter out such prefixed codepoints so that they affect neither the context nor the caret position - the latter of which shows up more as an issue when testing with predictive text implementations.