From 92e852473488ee02a0f727c7f08d467c52670d7c Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Thu, 16 Dec 2010 10:44:21 +0100
Subject: [PATCH] debugger: hot fix for not activated editors while stepping

---
 src/plugins/debugger/debuggerengine.cpp | 5 +++++
 src/plugins/debugger/memoryagent.cpp    | 9 +++++++++
 src/plugins/debugger/memoryagent.h      | 1 +
 3 files changed, 15 insertions(+)

diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 5978ed7df6a..f12052063f6 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 60de4861ba4..2b11f5615a0 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 23917793c9f..51b41175aba 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.
-- 
GitLab