From 6b298b8ef589e9a395eb6a7cb7c97522458097ca Mon Sep 17 00:00:00 2001 From: Junghoon Park Date: Mon, 16 Oct 2017 20:44:58 +0900 Subject: [PATCH] Unbind the window when an instance is terminated Change-Id: I717a87cf07e8c655eac85fcac20a4668eaa75939 Signed-off-by: Junghoon Park --- include/appcore_multiwindow_base.h | 1 + src/multiwindow_base/appcore_multiwindow_base_class.c | 1 + src/multiwindow_base/appcore_multiwindow_base_window.c | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/include/appcore_multiwindow_base.h b/include/appcore_multiwindow_base.h index 7840fd1..2c167cd 100644 --- a/include/appcore_multiwindow_base.h +++ b/include/appcore_multiwindow_base.h @@ -67,6 +67,7 @@ void appcore_multiwindow_base_window_on_lower(int type, void *event); void appcore_multiwindow_base_window_on_visibility(int type, void *event); void appcore_multiwindow_base_window_on_pre_visibility(int type, void *event); void appcore_multiwindow_base_window_bind(appcore_multiwindow_base_instance_h h, Ecore_Wl_Window *wl_win); +void appcore_multiwindow_base_window_unbind(appcore_multiwindow_base_instance_h h); appcore_multiwindow_base_class appcore_multiwindow_base_class_get_default(void); void appcore_multiwindow_base_class_add(appcore_multiwindow_base_class cls); diff --git a/src/multiwindow_base/appcore_multiwindow_base_class.c b/src/multiwindow_base/appcore_multiwindow_base_class.c index 41a4742..475de69 100644 --- a/src/multiwindow_base/appcore_multiwindow_base_class.c +++ b/src/multiwindow_base/appcore_multiwindow_base_class.c @@ -88,6 +88,7 @@ EXPORT_API void appcore_multiwindow_base_class_on_create(appcore_multiwindow_bas EXPORT_API void appcore_multiwindow_base_class_on_terminate(appcore_multiwindow_base_instance_h context) { + appcore_multiwindow_base_window_unbind(context); } EXPORT_API void appcore_multiwindow_base_class_on_pause(appcore_multiwindow_base_instance_h context) diff --git a/src/multiwindow_base/appcore_multiwindow_base_window.c b/src/multiwindow_base/appcore_multiwindow_base_window.c index 06c7784..cb2061c 100644 --- a/src/multiwindow_base/appcore_multiwindow_base_window.c +++ b/src/multiwindow_base/appcore_multiwindow_base_window.c @@ -159,3 +159,16 @@ EXPORT_API void appcore_multiwindow_base_window_bind(appcore_multiwindow_base_in cxt->inst = h; __win_contexts = g_list_append(__win_contexts, cxt); } + +EXPORT_API void appcore_multiwindow_base_window_unbind(appcore_multiwindow_base_instance_h h) +{ + win_context *cxt; + + cxt = __find_win_context(h); + if (!cxt) + return; + + __win_contexts = g_list_remove(__win_contexts, cxt); + free(cxt); +} + -- 2.7.4