diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 5acc6e739414d42c7e710f0c06145405e61ba98d..095fc78cf50fde0a0e9a637036d76b0559db3202 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -1389,11 +1389,7 @@ void DebuggerEngine::notifyEngineShutdownOk() showMessage(_("NOTE: ENGINE SHUTDOWN OK")); QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << state()); setState(EngineShutdownOk); - if (isSlaveEngine()) { - setState(DebuggerFinished); // WHY? - } else { - d->queueFinishDebugger(); - } + d->queueFinishDebugger(); } void DebuggerEngine::notifyEngineShutdownFailed() @@ -1401,11 +1397,7 @@ void DebuggerEngine::notifyEngineShutdownFailed() showMessage(_("NOTE: ENGINE SHUTDOWN FAILED")); QTC_ASSERT(state() == EngineShutdownRequested, qDebug() << state()); setState(EngineShutdownFailed); - if (isSlaveEngine()) { - setState(DebuggerFinished); // WHY? - } else { - d->queueFinishDebugger(); - } + d->queueFinishDebugger(); } void DebuggerEnginePrivate::doFinishDebugger() @@ -1494,8 +1486,10 @@ void DebuggerEngine::setState(DebuggerState state, bool forced) void DebuggerEngine::updateViews() { - // FIXME: This should not be done for slave engines. - plugin()->updateState(this); + // The slave engines are not entitled to change the view. Their wishes + // should be coordinated by their master engine. + if (isSlaveEngine()) + plugin()->updateState(this); } bool DebuggerEngine::isSlaveEngine() const