diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 3f4b19dd1c9..44a6ba3000d 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -520,14 +520,17 @@ void DebuggerEngine::gotoLocation(const QString &file, int line, bool setMarker) d->doRemoveLocationMark(); - bool newEditor = false; - ITextEditor *editor = - BaseTextEditor::openEditorAt(file, line, 0, QString(), - EditorManager::IgnoreNavigationHistory, &newEditor); - if (!editor) - return; - if (newEditor) - editor->setProperty(Constants::OPENED_BY_DEBUGGER, true); + EditorManager *editorManager = EditorManager::instance(); + QList editors = editorManager->editorsForFileName(file); + if (editors.isEmpty()) { + editors.append(editorManager->openEditor(file, QString(), + EditorManager::IgnoreNavigationHistory)); + editors.back()->setProperty(Constants::OPENED_BY_DEBUGGER, true); + } + ITextEditor *texteditor = qobject_cast(editors.back()); + if (texteditor) + texteditor->gotoLine(line, 0); + if (setMarker) d->m_locationMark.reset(new LocationMark(file, line)); } diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp index 57ea85218ab..60de4861ba4 100644 --- a/src/plugins/debugger/memoryagent.cpp +++ b/src/plugins/debugger/memoryagent.cpp @@ -84,6 +84,7 @@ void MemoryAgent::createBinEditor(quint64 addr) IEditor *editor = editorManager->openEditorWithContents( Core::Constants::K_DEFAULT_BINARY_EDITOR_ID, &titlePattern); + editorManager->activateEditor(editor); if (editor) { editor->setProperty(Debugger::Constants::OPENED_BY_DEBUGGER, true); editor->setProperty(Debugger::Constants::OPENED_WITH_MEMORY, true); @@ -126,7 +127,6 @@ void MemoryAgent::addLazyData(QObject *editorToken, quint64 addr, { IEditor *editor = qobject_cast(editorToken); if (editor && editor->widget()) { - Core::EditorManager::instance()->activateEditor(editor); QMetaObject::invokeMethod(editor->widget(), "addLazyData", Q_ARG(quint64, addr / BinBlockSize), Q_ARG(QByteArray, ba)); }