From 7c35a577cccd2f6bdfcb740969ac911f377b1a03 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Wed, 1 Dec 2010 15:08:43 +0100
Subject: [PATCH] Don't switch away from debug mode when jumping to line via
 locator

Task-number: QTCREATORBUG-3192
---
 src/plugins/coreplugin/editormanager/editormanager.cpp | 4 +---
 src/plugins/coreplugin/modemanager.cpp                 | 2 ++
 src/plugins/texteditor/linenumberfilter.cpp            | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 65b8c9a4fa5..098ba06ac97 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1272,9 +1272,7 @@ void EditorManager::switchToPreferedMode()
     if (preferedMode.isEmpty())
         preferedMode = Constants::MODE_EDIT_TYPE;
 
-    if (m_d->m_core->modeManager()->currentMode()->type() != preferedMode) {
-        m_d->m_core->modeManager()->activateModeType(preferedMode);
-    }
+    m_d->m_core->modeManager()->activateModeType(preferedMode);
 }
 
 IEditor *EditorManager::openEditorWithContents(const QString &editorId,
diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index bffafcb06aa..bd1814bebb3 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -151,6 +151,8 @@ IMode *ModeManager::mode(const QString &id) const
 
 void ModeManager::activateModeType(const QString &type)
 {
+    if (currentMode() && currentMode()->type() == type)
+        return;
     int index = -1;
     for (int i = 0; i < d->m_modes.count(); ++i) {
         if (d->m_modes.at(i)->type() == type) {
diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp
index 710b5cebec5..c8554dc1f4b 100644
--- a/src/plugins/texteditor/linenumberfilter.cpp
+++ b/src/plugins/texteditor/linenumberfilter.cpp
@@ -66,7 +66,7 @@ void LineNumberFilter::accept(FilterEntry selection) const
         editorManager->addCurrentPositionToNavigationHistory();
         editor->gotoLine(selection.internalData.toInt());
         editor->widget()->setFocus();
-        Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
+        Core::ModeManager::instance()->activateModeType(Core::Constants::MODE_EDIT_TYPE);
     }
 }
 
-- 
GitLab