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 25d333f70ab0..38af86a4f10b 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
@@ -3814,7 +3814,7 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
}
}
else {
- if (!myMousePressedInsideSelectionForDrag && getSelectionModel().hasSelection()) {
+ if (!myMousePressedInsideSelectionForDrag && getSelectionModel().hasSelection() && !isCreateRectangularSelectionEvent(e)) {
setMouseSelectionState(MOUSE_SELECTION_STATE_NONE);
mySelectionModel.setSelection(caretOffset, caretOffset);
}
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 e5e0f9062d5e..3904bbf0f457 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
@@ -549,4 +549,11 @@ public class EditorImplTest extends AbstractEditorTest {
mouse.release();
checkResultByText("abcdef");
}
+
+ public void testCreateRectangularSelectionWithDndDisabled() {
+ initText("ab\ncd");
+ myEditor.getSettings().setDndEnabled(false);
+ mouse().alt().shift().middle().clickAt(0, 0);
+ checkResultByText("ab\ncd");
+ }
}