Fix background launch
[platform/core/appfw/app-core.git] / src / ui_base / appcore_ui_base.c
index 07b847a..40919f0 100644 (file)
@@ -389,7 +389,7 @@ static void __finish_wl(void)
 
 static void __set_bg_state(void)
 {
-       if (__init_wl() < 0)
+       if (!tz_policy && __init_wl() < 0)
                return;
 
        tizen_policy_set_background_state(tz_policy, getpid());
@@ -407,7 +407,6 @@ static void __unset_bg_state(void)
        wl_display_roundtrip(dsp);
        bg_state = false;
        _DBG("bg state: %d", bg_state);
-       __finish_wl();
 }
 
 static void __do_start(bundle *b)
@@ -431,14 +430,19 @@ static void __do_start(bundle *b)
                return;
        }
 
-       if ((__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) &&
-               bg_state) {
+       if (__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) {
                bg_launch = bundle_get_val(b, AUL_SVC_K_BG_LAUNCH);
-               if (!bg_launch || strcmp(bg_launch, "enable"))
-                       __unset_bg_state();
+               if (bg_launch && strcmp(bg_launch, "enable") == 0) {
+                       if (!bg_state && __context.state != AS_RUNNING)
+                               __set_bg_state();
+               } else {
+                       if (bg_state)
+                               __unset_bg_state();
+               }
        }
 
-       __raise_win();
+       if (!bg_state)
+               __raise_win();
 }
 
 EXPORT_API int appcore_ui_base_on_receive(aul_type type, bundle *b)
@@ -514,6 +518,7 @@ EXPORT_API int appcore_ui_base_on_terminate(void)
        if (__context.hlower)
                ecore_event_handler_del(__context.hlower);
 
+       __finish_wl();
        elm_shutdown();
 
        /* Check loader case */