RFR: 8296266: TextArea: Navigation breaks with RTL text
Karthik P K
kpk at openjdk.org
Wed Aug 30 12:13:18 UTC 2023
On Tue, 22 Aug 2023 20:46:21 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
> The fix uses character BreakIterator instead of the logic that relies on caretBounds/hitTest/rangeShape in TextInputControl.nextCharacterVisually().
>
> I believe this is a more reliable method of navigation, as it behaves in sync with the jdk break iterator, thought it might work differently around grapheme clusters, considering a recent change JDK-8291660
>
> This change also introduces TextInputControlHelper class (impl. detail) which gives access to character- and word- break iterators cached by TextInputControl (*some say* these iterators and associated editing logic should be a part of Content implementation, but that's a discussion for another day).
When the shortcut: cmd + right arrow is used to traverse the text area, caret is displayed on the both sides of the RTL text as shown in screenshot below. This is not observed if individual character is traversed using right arrow or shortcut option + right arrow is used to traverse word by word.
<img width="362" alt="image" src="https://github.com/openjdk/jfx/assets/26969459/054b202f-c034-4f98-a56d-9521c1754e87">
Rest of the changes look good to me.
-------------
PR Review: https://git.openjdk.org/jfx/pull/1220#pullrequestreview-1602558622
More information about the openjfx-dev
mailing list