From 92bc10ed209be4b1c91695335e6c20a0fbe24781 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 12 Sep 2017 18:38:08 +0300 Subject: [PATCH] IDEA-178809 Issue with sticky selection near the end of document --- .../src/com/intellij/openapi/editor/impl/EditorImpl.java | 2 +- .../com/intellij/openapi/editor/impl/EditorImplTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 84c8d813b74e..05b11c070712 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -458,7 +458,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi @Override public void caretPositionChanged(CaretEvent e) { if (myStickySelection) { - int selectionStart = Math.min(myStickySelectionStart, getDocument().getTextLength() - 1); + int selectionStart = Math.min(myStickySelectionStart, getDocument().getTextLength()); mySelectionModel.setSelection(selectionStart, myCaretModel.getVisualPosition(), myCaretModel.getOffset()); } diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorImplTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorImplTest.java index c3a90464bfb1..f1165887b161 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorImplTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/editor/impl/EditorImplTest.java @@ -514,4 +514,11 @@ public class EditorImplTest extends AbstractEditorTest { assertFalse(inlay.isValid() && inlay.getOffset() == 1); assertFalse(region.isValid() && (region.getStartOffset() == 1 || region.getEndOffset() == 1)); } + + public void testStickySelectionAtDocumentEnd() { + initText("ab"); + ((EditorEx)myEditor).setStickySelection(true); + left(); + checkResultByText("ab"); + } }