aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-09-11 13:56:24 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-09-11 13:56:24 +0900
commit92cbe39df7b53208e15bea19e523570be915cf1e (patch)
tree4d0bf8313ec61ef4d46c4d56604c09908a390366
parentd5a353563462d3eebd5e138a0ed4f850ea8cd809 (diff)
Add terminate process for layer_control
Change-Id: I583bfa1da8fa88e15b13417de15d7d2b9e79f7f2 Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r--src/window_manager.cpp2
-rw-r--r--src/wm_layer_control.cpp8
-rw-r--r--src/wm_layer_control.hpp1
3 files changed, 11 insertions, 0 deletions
diff --git a/src/window_manager.cpp b/src/window_manager.cpp
index 41fc5c8..e4083d5 100644
--- a/src/window_manager.cpp
+++ b/src/window_manager.cpp
@@ -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);
}
diff --git a/src/wm_layer_control.cpp b/src/wm_layer_control.cpp
index 9756d5e..30c37f9 100644
--- a/src/wm_layer_control.cpp
+++ b/src/wm_layer_control.cpp
@@ -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)
diff --git a/src/wm_layer_control.hpp b/src/wm_layer_control.hpp
index 3bf219a..7cccfa0 100644
--- a/src/wm_layer_control.hpp
+++ b/src/wm_layer_control.hpp
@@ -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);