Change window level for blocking the sudden appearence of the other app 41/164441/2 accepted/tizen/4.0/unified/20171220.145816 submit/tizen_4.0/20171219.083003
authorjunkyu han <junkyu.han@samsung.com>
Tue, 19 Dec 2017 06:16:45 +0000 (15:16 +0900)
committerjunkyu han <junkyu.han@samsung.com>
Tue, 19 Dec 2017 07:28:45 +0000 (16:28 +0900)
Change-Id: I133ff9eae4467731e7ea80bade0ffa379b8cf27a

src/animation.c

index 8de3bbae258769202fda95712120e26bc43488ff..a0074e9e5d9e786c74db8b695d00c2b91e06cfe7 100644 (file)
@@ -73,6 +73,15 @@ static void __block_display(void)
        s_animation.display_block = display_block;
 }
 
+static void __visibility_changed_cb(void *data, Evas_Object *obj, void *event)
+{
+       __D("Visibility changed");
+       int visibility = (int)(void *)event;
+
+       if (!visibility)
+               boot_exit();
+}
+
 static Eina_Bool __end_cb(void *data)
 {
        int type = (int) data;
@@ -92,8 +101,6 @@ static Eina_Bool __end_cb(void *data)
                __block_display();
        } else {
                __D("EXIT on BOOTING");
-               if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0)
-                       __E("Failed to set finished set");
                boot_exit();
        }
        return ECORE_CALLBACK_CANCEL;
@@ -103,13 +110,15 @@ static void __animation_finished_cb(void *d, Evas_Object * obj, const char *e, c
 {
        if (s_animation.state == TYPE_OFF) {
                __D("TYPE OFF");
-               if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0)
-                       __E("Failed to set finished set");
                ecore_timer_add(1, __end_cb, (void *)TYPE_OFF);
        } else {
                __D("TYPE_ON");
-               __end_cb((void *)TYPE_ON);
+               efl_util_set_notification_window_level(s_animation.win, EFL_UTIL_NOTIFICATION_LEVEL_NONE);
+               ecore_timer_add(10, __end_cb, (void *)TYPE_ON);
        }
+
+       if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0)
+               __E("Failed to set finished set");
 }
 
 static void __fini_layout(void)
@@ -141,9 +150,10 @@ Evas_Object *create_window(void)
                __E("Failed to create a new window");
                return NULL;
        }
-       elm_win_aux_hint_add(win, "wm.comp.win.always.selective.mode", "1");
        elm_win_role_set(win, "alert");
-       efl_util_set_notification_window_level(win, EFL_UTIL_NOTIFICATION_LEVEL_HIGH);
+       efl_util_set_notification_window_level(win, EFL_UTIL_NOTIFICATION_LEVEL_TOP);
+       evas_object_smart_callback_add(s_animation.win, "visibility,changed", __visibility_changed_cb, NULL);
+       elm_win_aux_hint_add(win, "wm.comp.win.always.selective.mode", "0");
        evas_object_smart_callback_add(win, "delete-request", win_del, NULL);
 
        elm_win_screen_size_get(win, NULL, NULL, &s_animation.w, &s_animation.h);