@@ -43,6 +43,7 @@ ApplicationManager *ApplicationManager::singleton()
4343ApplicationManager::ApplicationManager(QObject *parent)
4444 : ApplicationManagerInterface(parent)
4545 , m_suspended(false)
46+ , m_dashActive(false)
4647{
4748 m_roleNames.insert(RoleSession, "session");
4849 m_roleNames.insert(RoleFullscreen, "fullscreen");
@@ -292,6 +293,31 @@ void ApplicationManager::setSuspended(bool suspended)
292293 Q_EMIT suspendedChanged();
293294}
294295
296+bool ApplicationManager::dashActive() const
297+{
298+ return m_dashActive;
299+}
300+
301+void ApplicationManager::setDashActive(bool dashActive)
302+{
303+ if (m_dashActive == dashActive) {
304+ return;
305+ }
306+
307+ ApplicationInfo *dash = findApplication("unity8-dash");
308+ if (dash) {
309+ if (dashActive) {
310+ dash->setState(ApplicationInfo::Running);
311+ } else {
312+ if (!dash->focused()) {
313+ dash->setState(ApplicationInfo::Suspended);
314+ }
315+ }
316+ }
317+ m_dashActive = dashActive;
318+ Q_EMIT dashActiveChanged();
319+}
320+
295321bool ApplicationManager::focusApplication(const QString &appId)
296322{
297323 ApplicationInfo *application = findApplication(appId);