summaryrefslogtreecommitdiffstats
path: root/src/modules/Unity/Application/application_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/Unity/Application/application_manager.cpp')
-rw-r--r--src/modules/Unity/Application/application_manager.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/modules/Unity/Application/application_manager.cpp b/src/modules/Unity/Application/application_manager.cpp
index ba8bc9a..1aa5b82 100644
--- a/src/modules/Unity/Application/application_manager.cpp
+++ b/src/modules/Unity/Application/application_manager.cpp
@@ -465,7 +465,7 @@ void ApplicationManager::onProcessFailed(const QString &appId, const bool during
}
Q_UNUSED(duringStartup); // FIXME(greyback) upstart reports app that fully started up & crashes as failing during startup??
- application->setProcessState(Application::ProcessStopped);
+ application->setProcessState(Application::ProcessKilled);
application->setPid(0);
}
@@ -481,8 +481,12 @@ void ApplicationManager::onProcessStopped(const QString &appId)
return;
}
- application->setProcessState(Application::ProcessStopped);
- application->setPid(0);
+ // if an application gets killed, onProcessFailed is called first, followed by onProcessStopped.
+ // we don't want to override what onProcessFailed already set.
+ if (application->processState() != Application::ProcessKilled) {
+ application->setProcessState(Application::ProcessStopped);
+ application->setPid(0);
+ }
}
void ApplicationManager::onProcessSuspended(const QString &appId)