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