Add an exception handling about permanent deletion
[platform/core/appfw/appcore-widget.git] / src / widget_app.c
index 527cfa8..858e7fc 100755 (executable)
@@ -91,6 +91,7 @@ static widget_class_h class_provider;
 static int exit_called;
 static char *package_id;
 static bool fg_signal;
+static bool is_permanent;
 
 static void _widget_core_set_appcore_event_cb(void);
 static void _widget_core_unset_appcore_event_cb(void);
@@ -567,9 +568,11 @@ static int __instance_destroy(widget_class_h handle, const char *id,
                        handle->user_data);
 
        if (reason == WIDGET_APP_DESTROY_TYPE_PERMANENT) {
+               is_permanent = true;
                event = WIDGET_INSTANCE_EVENT_DESTROY;
                aul_widget_instance_del(handle->classid, id);
        } else {
+               is_permanent = false;
                ret = __send_update_status(handle->classid, id,
                                WIDGET_INSTANCE_EVENT_EXTRA_UPDATED, content_info);
        }
@@ -1293,7 +1296,8 @@ EXPORT_API int widget_app_exit(void)
        exit_called = 1;
 
        elm_exit();
-       aul_notify_exit();
+       if (!_widget_app_get_contexts() && is_permanent)
+               aul_notify_exit();
 
        return WIDGET_ERROR_NONE;
 }