Add terminate process for layer_control
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Tue, 11 Sep 2018 04:56:24 +0000 (13:56 +0900)
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Tue, 11 Sep 2018 04:56:24 +0000 (13:56 +0900)
Change-Id: I583bfa1da8fa88e15b13417de15d7d2b9e79f7f2
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
src/window_manager.cpp
src/wm_layer_control.cpp
src/wm_layer_control.hpp

index 41fc5c8..e4083d5 100644 (file)
@@ -821,6 +821,8 @@ void WindowManager::surface_properties(unsigned surface_id, unsigned pid)
 void WindowManager::removeClient(const string &appid)
 {
     HMI_DEBUG("Remove clinet %s from list", appid.c_str());
+    auto client = g_app_list.lookUpClient(appid);
+    this->lc->terminateApp(client);
     g_app_list.removeClient(appid);
 }
 
index 9756d5e..30c37f9 100644 (file)
@@ -428,6 +428,14 @@ WMError LayerControl::visibilityChange(const WMAction& action)
     return ret;
 }
 
+void LayerControl::terminateApp(const shared_ptr<WMClient> client)
+{
+    for(auto& l : this->wm_layers)
+    {
+        l->terminateApp(client->layerID());
+    }
+}
+
 void LayerControl::dispatchCreateEvent(ilmObjectType object, unsigned id, bool created)
 {
     if (ILM_SURFACE == object)
index 3bf219a..7cccfa0 100644 (file)
@@ -80,6 +80,7 @@ class LayerControl
     void undoUpdate();
     WMError layoutChange(const WMAction& action);
     WMError visibilityChange(const WMAction &action);
+    void terminateApp(const std::shared_ptr<WMClient> client);
 
     // Don't use this function.
     void dispatchCreateEvent(ilmObjectType object, unsigned id, bool created);