diff options
Diffstat (limited to 'platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java')
-rw-r--r-- | platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java | 27 |
1 files changed, 15 insertions, 12 deletions
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 60b42f75c22c..690e7c7d2820 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 @@ -278,19 +278,22 @@ public class TextEditorProvider implements FileEditorProvider, DumbAware { } protected void setStateImpl(final Project project, final Editor editor, final TextEditorState state){ - if (editor.getCaretModel().supportsMultipleCarets()) { - CaretModel caretModel = editor.getCaretModel(); - List<CaretState> states = new ArrayList<CaretState>(state.CARETS.length); - for (TextEditorState.CaretState caretState : state.CARETS) { - states.add(new CaretState(new LogicalPosition(caretState.LINE, caretState.COLUMN), - new LogicalPosition(caretState.SELECTION_START_LINE, caretState.SELECTION_START_COLUMN), - new LogicalPosition(caretState.SELECTION_END_LINE, caretState.SELECTION_END_COLUMN))); + if (state.CARETS != null) { + if (editor.getCaretModel().supportsMultipleCarets()) { + CaretModel caretModel = editor.getCaretModel(); + List<CaretState> states = new ArrayList<CaretState>(state.CARETS.length); + for (TextEditorState.CaretState caretState : state.CARETS) { + states.add(new CaretState(new LogicalPosition(caretState.LINE, caretState.COLUMN), + new LogicalPosition(caretState.SELECTION_START_LINE, caretState.SELECTION_START_COLUMN), + new LogicalPosition(caretState.SELECTION_END_LINE, caretState.SELECTION_END_COLUMN))); + } + caretModel.setCaretsAndSelections(states); + } + else { + LogicalPosition pos = new LogicalPosition(state.CARETS[0].LINE, state.CARETS[0].COLUMN); + editor.getCaretModel().moveToLogicalPosition(pos); + editor.getSelectionModel().removeSelection(); } - caretModel.setCaretsAndSelections(states); - } else { - LogicalPosition pos = new LogicalPosition(state.CARETS[0].LINE, state.CARETS[0].COLUMN); - editor.getCaretModel().moveToLogicalPosition(pos); - editor.getSelectionModel().removeSelection(); } EditorEx editorEx = editor instanceof EditorEx ? (EditorEx)editor : null; boolean preciselyScrollVertically = |