summaryrefslogtreecommitdiff
path: root/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/text/TextEditorProvider.java
diff options
context:
space:
mode:
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.java27
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 =