From b6319ab8ae8533ed51c5d5d85cd89f6262fe87f5 Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Sun, 20 Feb 2005 19:24:15 +0300 Subject: [PATCH] IDEADEV-284 --- .../editor/impl/EditorMarkupModelImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/source/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/source/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index ce015d0b9e7d..121f200afaeb 100644 --- a/source/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/source/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -20,10 +20,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.impl.ApplicationImpl; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.editor.LogicalPosition; -import com.intellij.openapi.editor.ScrollType; -import com.intellij.openapi.editor.ScrollingModel; +import com.intellij.openapi.editor.*; import com.intellij.openapi.editor.ex.EditorEx; import com.intellij.openapi.editor.ex.EditorMarkupModel; import com.intellij.openapi.editor.ex.ErrorStripeEvent; @@ -445,7 +442,16 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark public boolean doClick(final MouseEvent e, final double width) { if (inside(e, width)) { RangeHighlighter marker = markers.get(0); - myEditor.getCaretModel().moveToOffset(marker.getStartOffset()); + final int offset = marker.getStartOffset(); + final Document doc = myEditor.getDocument(); + if (doc.getLineCount() > 0) { + // Necessary to expand folded block even if naviagting just before one + // Very useful when navigating to first unused import statement. + int lineEnd = doc.getLineEndOffset(doc.getLineNumber(offset)); + myEditor.getCaretModel().moveToOffset(lineEnd); + } + + myEditor.getCaretModel().moveToOffset(offset); myEditor.getSelectionModel().removeSelection(); ScrollingModel scrollingModel = myEditor.getScrollingModel(); scrollingModel.disableAnimation();