diff --git a/src/plugins/debugger/debuggercore.h b/src/plugins/debugger/debuggercore.h index 6441c5df2cf..80e1f9b88a1 100644 --- a/src/plugins/debugger/debuggercore.h +++ b/src/plugins/debugger/debuggercore.h @@ -76,6 +76,7 @@ void runControlFinished(DebuggerEngine *engine); void displayDebugger(DebuggerEngine *engine, bool updateEngine); void synchronizeBreakpoints(); +void saveModeToRestore(); QWidget *mainWindow(); bool isRegistersWindowVisible(); bool isModulesWindowVisible(); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 7fc925e6164..531b2c09912 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2691,7 +2691,6 @@ void DebuggerPluginPrivate::activateDebugMode() { m_reverseDirectionAction->setChecked(false); m_reverseDirectionAction->setEnabled(false); - m_previousMode = ModeManager::currentMode()->id(); ModeManager::activateMode(MODE_DEBUG); } @@ -3315,6 +3314,11 @@ void DebuggerPluginPrivate::onModeChanged(IMode *mode) } } +void saveModeToRestore() +{ + dd->m_previousMode = ModeManager::currentMode()->id(); +} + } // namespace Internal bool ActionDescription::isRunnable(QString *reason) const diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index f676fbfe9bc..defcaa1c7f5 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -141,6 +141,7 @@ QString DebuggerRunControl::displayName() const void DebuggerRunControl::start() { + Debugger::Internal::saveModeToRestore(); Debugger::selectPerspective(Debugger::Constants::CppPerspectiveId); TaskHub::clearTasks(Debugger::Constants::TASK_CATEGORY_DEBUGGER_DEBUGINFO); TaskHub::clearTasks(Debugger::Constants::TASK_CATEGORY_DEBUGGER_RUNTIME);