diff --git a/src/plugins/coreplugin/editormanager/editorgroup.cpp b/src/plugins/coreplugin/editormanager/editorgroup.cpp index c146a09f25696acb452b77c45a0d7b318e9e32f2..2e33f810e036ce173aaef86b2e038c1e38523068 100644 --- a/src/plugins/coreplugin/editormanager/editorgroup.cpp +++ b/src/plugins/coreplugin/editormanager/editorgroup.cpp @@ -268,16 +268,14 @@ bool EditorGroup::restoreState(const QByteArray &state) EditorManager *em = EditorManager::instance(); EditorList editors; in >> editors; - IEditor *currentEditor = 0; - IEditor *editor; int savedIndex = editors.currentEditorIndex; + if (savedIndex >= 0 && savedIndex < editors.count()) + em->restoreEditor(editors.fileNameAt(savedIndex), editors.editorKindAt(savedIndex), this); for (int j = 0; j < editors.count(); ++j) { - editor = em->restoreEditor(editors.fileNameAt(j), editors.editorKindAt(j), this); if (j == savedIndex) - currentEditor = editor; + continue; + em->restoreEditor(editors.fileNameAt(j), editors.editorKindAt(j), this); } - if (currentEditor) - setCurrentEditor(currentEditor); return true; }