On Mon, 9 Oct 2023 20:44:24 GMT, Phil Race <p...@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).
>
> modules/javafx.controls/src/main/java/javafx/scene/control/TextInputControl.java
>  line 759:
> 
>> 757:     /**
>> 758:      * Returns a cached instance of character break iterator, creating 
>> it if necessary.
>> 759:      * The instance is initialized with the given text.
> 
> "updated with the current text" might be more accurate ? It obviously has to 
> be up to date to be used.
> I'm also unsure of the performance consequences of having a BI spanning the 
> entire text of the TextControl, which could be quite large, but that's what 
> the code was already doing I suppose.

+1 thanks!

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1220#discussion_r1350822221

Reply via email to