diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index d9ab7b9ef23..8f5f8619dc7 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -883,8 +883,10 @@ bool EditorManager::closeEditors(const QList &editorsToClose, bool ask return false; // add duplicates + QList duplicates; foreach(IEditor *editor, acceptedEditors) - acceptedEditors += d->m_editorModel->duplicatesFor(editor); + duplicates += d->m_editorModel->duplicatesFor(editor); + acceptedEditors += duplicates; QList closedViews; @@ -914,8 +916,13 @@ bool EditorManager::closeEditors(const QList &editorsToClose, bool ask activateEditor(view, newCurrent, NoActivate); } else { QModelIndex idx = d->m_editorModel->firstRestoredEditor(); - if (idx.isValid()) + if (idx.isValid()) { activateEditorForIndex(view, idx, NoActivate); + } else { + const QList editors = d->m_editorModel->editors(); + if (!editors.isEmpty()) + activateEditor(view, editors.last(), NoActivate); + } } }