diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 86c9b0dfc65308c9ff9edf2cddad10711d275660..f17c720bbd1ec470230d253ea1e6ea9eff96e59f 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2186,15 +2186,21 @@ void DebuggerPluginPrivate::cleanupViews() QList<IEditor *> toClose; foreach (IEditor *editor, editorManager->openedEditors()) { if (editor->property(Constants::OPENED_BY_DEBUGGER).toBool()) { - // Close disassembly views. Close other opened files - // if they are not modified and not current editor. - if (editor->property(Constants::OPENED_WITH_DISASSEMBLY).toBool() - || (!editor->document()->isModified() - && editor != EditorManager::currentEditor())) { - toClose.append(editor); - } else { + IDocument *doc = editor->document(); + bool keepIt = true; + if (editor->property(Constants::OPENED_WITH_DISASSEMBLY).toBool()) + keepIt = false; + else if (doc->isModified()) + keepIt = true; + else if (doc->fileName().contains(_("qeventdispatcher"))) + keepIt = false; + else + keepIt = (editor == EditorManager::currentEditor()); + + if (keepIt) editor->setProperty(Constants::OPENED_BY_DEBUGGER, false); - } + else + toClose.append(editor); } } editorManager->closeEditors(toClose);