From 1e8401b6d003d3ff2dda4165b0c9dc478a19b32b Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 10 Jan 2012 13:21:29 +0400 Subject: [PATCH] Small fix for CodeWindow --- .../plugin/internal/codewindow/BytecodeToolwindow.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java b/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java index 08da0f6abef..41c9e365ff5 100644 --- a/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java +++ b/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java @@ -95,17 +95,19 @@ public class BytecodeToolwindow extends JPanel { if (endLine > startLine && location.endOffset > 0 && document.getCharsSequence().charAt(location.endOffset - 1) == '\n') endLine--; Document byteCodeDocument = myEditor.getDocument(); + Pair linesRange = mapLines(byteCodeDocument.getText(), startLine, endLine); + int endSelectionLineIndex = Math.min(linesRange.second + 1, byteCodeDocument.getLineCount()); int startOffset = byteCodeDocument.getLineStartOffset(linesRange.first); - int endOffset = Math.min(byteCodeDocument.getLineStartOffset(linesRange.second + 1), byteCodeDocument.getTextLength()); + int endOffset = Math.min(byteCodeDocument.getLineStartOffset(endSelectionLineIndex), byteCodeDocument.getTextLength()); + myEditor.getCaretModel().moveToOffset(endOffset); myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); myEditor.getCaretModel().moveToOffset(startOffset); myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); - myEditor.getSelectionModel().setSelection(startOffset, - endOffset); + myEditor.getSelectionModel().setSelection(startOffset, endOffset); } }