From 0cd3b58aa2d3c248e3adb3208615e32881a0ea2f Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Tue, 16 Jun 2015 01:13:38 +0300 Subject: [PATCH] fix AIOOBE during editor painting --- .../com/intellij/openapi/editor/impl/view/IterationState.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/IterationState.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/IterationState.java index 602073dfd193..ee31e70339cb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/IterationState.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/view/IterationState.java @@ -172,9 +172,9 @@ public class IterationState { Caret caret = carets.get(i); mySelectionStarts[iterateBackwards ? caretCount - i - 1 : i] = caret.getSelectionStart(); mySelectionEnds[iterateBackwards ? caretCount - i - 1 : i] = caret.getSelectionEnd(); - if (!iterateBackwards) { + if (!iterateBackwards && caret.hasSelection()) { myVirtualSelectionStarts[i] = caret.getSelectionStartPosition().column - - editor.offsetToVisualPosition(mySelectionStarts[i]).column; + editor.offsetToVisualPosition(mySelectionStarts[i], true).column; myVirtualSelectionEnds[i] = caret.getSelectionEndPosition().column - editor.offsetToVisualPosition(mySelectionEnds[i]).column; }