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