Fix a little
[apps/agl-service-windowmanager-2017.git] / src / window_manager.cpp
index e785e4b..6731022 100644 (file)
@@ -661,12 +661,12 @@ void WindowManager::onApplicationTerminated(const WMClientCtxt& ctxt)
     // Recovery Phase
     if(priv.main == sid)
     {
-        HMI_DEBUG("wm", "go to launcher");
         if(ctxt.role != "launcher")
         {
-            // goto launcher
+            HMI_DEBUG("wm", "go to launcher");
             auto pSid = this->id_alloc.lookup("launcher");
-            std::string app = g_app_list.getAppID(*pSid, "launcher", &found);
+            if(pSid != nullptr)
+                std::string app = g_app_list.getAppID(*pSid, "launcher", &found);
             if(found)
             {
                 this->api_activate_surface(app.c_str(), "launcher", kNameAreaDefault,
@@ -676,10 +676,11 @@ void WindowManager::onApplicationTerminated(const WMClientCtxt& ctxt)
     }
     else if(priv.main != sid && priv.sub != sid)
     {
-        // re-show top surface
-        this->deactivate(priv.main);
-        this->activate(priv.main);
+        // TODO: re-show top surface. The bellow doesn't work.
+        /* this->deactivate(priv.main);
         this->layout_commit();
+        this->activate(priv.main);
+        this->layout_commit(); */
     }
     else {}
     g_app_list.removeClient(ctxt.name);