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