diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 5978ed7df6ae619c7a913c6f2ac0a249eec001be..f12052063f6c9eb2ad4d6fd6fdd2a4c03dedf096 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -533,6 +533,11 @@ void DebuggerEngine::gotoLocation(const QString &file, int line, bool setMarker) if (setMarker) d->m_locationMark.reset(new LocationMark(file, line)); + + // FIXME: Breaks with split views. + if (!d->m_memoryAgent.hasVisibleEditor()) + editorManager->activateEditor(editors.back()); + //qDebug() << "MEMORY: " << d->m_memoryAgent.hasVisibleEditor(); } void DebuggerEngine::gotoLocation(const StackFrame &frame, bool setMarker) diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp index 60de4861ba4f3601b0b517add9146a1d5d4d4a15..2b11f5615a0b974a49cd02c2962a3f048a114f05 100644 --- a/src/plugins/debugger/memoryagent.cpp +++ b/src/plugins/debugger/memoryagent.cpp @@ -161,5 +161,14 @@ void MemoryAgent::updateContents() QMetaObject::invokeMethod(editor->widget(), "updateContents"); } +bool MemoryAgent::hasVisibleEditor() const +{ + QList<IEditor *> visible = EditorManager::instance()->visibleEditors(); + foreach (QPointer<IEditor> editor, m_editors) + if (visible.contains(editor.data())) + return true; + return false; +} + } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/memoryagent.h b/src/plugins/debugger/memoryagent.h index 23917793c9f35f8aa287bbc21713c277fbfa9049..51b41175aba78314ad3d6e13c8b75f3da8d13226 100644 --- a/src/plugins/debugger/memoryagent.h +++ b/src/plugins/debugger/memoryagent.h @@ -52,6 +52,7 @@ public: ~MemoryAgent(); enum { BinBlockSize = 1024 }; + bool hasVisibleEditor() const; public slots: // Called by engine to create a new view.