diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp index fbae68c90c..7317805fb4 100644 --- a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp +++ b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp @@ -2718,7 +2718,14 @@ private: int getTotalNumCharacters() const override { return textEditor.getText().length(); } Range getSelection() const override { return textEditor.getHighlightedRegion(); } - void setSelection (Range r) override { textEditor.setHighlightedRegion (r); } + + void setSelection (Range r) override + { + if (r.isEmpty()) + textEditor.setCaretPosition (r.getStart()); + else + textEditor.setHighlightedRegion (r); + } String getText (Range r) const override { diff --git a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp index 30199fbca8..de0159e1c3 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +++ b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp @@ -71,6 +71,12 @@ private: void setSelection (Range r) override { + if (r.isEmpty()) + { + codeEditorComponent.caretPos.setPosition (r.getStart()); + return; + } + auto& doc = codeEditorComponent.document; codeEditorComponent.selectRegion (CodeDocument::Position (doc, r.getStart()),