diff --git a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java index ac5c922737fd..c993b8569fbc 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindow.java @@ -527,6 +527,7 @@ public class EditorWindow extends UserDataHolderBase implements EditorEx { return myDelegate.getContentSize(); } + @NotNull @Override public JScrollPane getScrollPane() { return myDelegate.getScrollPane(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java index 85039d2ae2aa..87c4b7fe2875 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java @@ -111,6 +111,7 @@ public interface EditorEx extends Editor { void setOneLineMode(boolean b); + @NotNull JScrollPane getScrollPane(); boolean isRendererMode(); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java index 8973b76961c9..a43d4e9844cd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/ScrollingModelImpl.java @@ -250,9 +250,8 @@ public class ScrollingModelImpl implements ScrollingModelEx { @Nullable public JScrollBar getVerticalScrollBar() { assertIsDispatchThread(); - if (myEditor.getScrollPane() == null) return null; - - return myEditor.getScrollPane().getVerticalScrollBar(); + JScrollPane scrollPane = myEditor.getScrollPane(); + return scrollPane.getVerticalScrollBar(); } @Nullable diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java index 9e6c75bdbb38..3a6913c4ecca 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java @@ -202,9 +202,10 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { state.VERTICAL_SCROLL_PROPORTION = level == FileEditorStateLevel.UNDO ? -1 : EditorUtil.calcVerticalScrollProportion(editor); if (editor instanceof EditorEx) { state.VERTICAL_SCROLL_OFFSET = editor.getScrollingModel().getVerticalScrollOffset(); - state.MAX_VERTICAL_SCROLL_OFFSET = ((EditorEx)editor).getScrollPane().getVerticalScrollBar().getMaximum(); + JScrollBar scrollBar = ((EditorEx)editor).getScrollPane().getVerticalScrollBar(); + state.MAX_VERTICAL_SCROLL_OFFSET = scrollBar == null ? 0 : scrollBar.getMaximum(); } - + return state; } @@ -216,6 +217,7 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { boolean preciselyScrollVertically = state.VERTICAL_SCROLL_OFFSET > 0 && editorEx != null + && editorEx.getScrollPane().getVerticalScrollBar() != null && editorEx.getScrollPane().getVerticalScrollBar().getMaximum() == state.MAX_VERTICAL_SCROLL_OFFSET; if (preciselyScrollVertically) { editor.getScrollingModel().scrollVertically(state.VERTICAL_SCROLL_OFFSET);