diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp index 8705d3503f52..812ed66fe585 100644 --- a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp +++ b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp @@ -2001,13 +2001,19 @@ bool TextEditor::moveCaretLeft (bool moveInWholeWordSteps, bool selecting) bool TextEditor::moveCaretRight (bool moveInWholeWordSteps, bool selecting) { - auto pos = getCaretPosition(); - - if (moveInWholeWordSteps) - pos = findWordBreakAfter (pos); + int pos; + if (!moveInWholeWordSteps && !selecting && !selection.isEmpty()) + { + pos = selection.getEnd(); + } else - ++pos; - + { + pos = getCaretPosition(); + if (moveInWholeWordSteps) + pos = findWordBreakAfter(pos); + else + ++pos; + } return moveCaretWithTransaction (pos, selecting); }