On Wed, 30 Aug 2023 12:10:37 GMT, Karthik P K <k...@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.

Thank you for testing, @karthikpandelu !

> This is not observed if individual character is traversed using right arrow 
> or shortcut option + right arrow...

This statement is not exactly correct.  Cmd+right navigates to a (visible) line 
end, in this case it's in the middle of the text string (index=8).  So if you 
place the cursor after the colon (index=7) and press right arrow, you'll get 
the split caret in exact the same configuration as cmd+right.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1220#issuecomment-1701604665

Reply via email to