From a191e04b5f0572ec4da0c740c0672151561602b5 Mon Sep 17 00:00:00 2001 From: Jing Yigang Date: Fri, 14 Sep 2012 13:40:30 +0800 Subject: [PATCH] [Bug] Modify the logic when destroying ug-image-viewer in setting > wallpaper. Change-Id: I1407edb0dd13d1f27f9aafed90f7c14f676f8f4a --- setting-display/src/setting-display-wallpaper.c | 78 ++++++++++++------------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/setting-display/src/setting-display-wallpaper.c b/setting-display/src/setting-display-wallpaper.c index 8bcd99f..010ec90 100755 --- a/setting-display/src/setting-display-wallpaper.c +++ b/setting-display/src/setting-display-wallpaper.c @@ -145,47 +145,6 @@ static void __setting_display_wallpaper_imageviewer_ug_result_cb(ui_gadget_h ug, ad->wallpaper_changed = EINA_TRUE; } - - if (ug) { - ug_destroy(ug); - ad->ug_imageviewer = NULL; - } - - if (ad->ug_gallery) { - ug_destroy(ad->ug_gallery); - ad->ug_gallery = NULL; - } - - if (ad->wallpaper_changed == EINA_FALSE) { - SETTING_TRACE("wallpaper not changed"); - return; - } - - char text[MAX_DISPLAY_NAME_LEN_ON_UI +1] = {0, }; - SETTING_TRACE("cur_sel = %d", ad->cur_sel); - switch(ad->cur_sel) { - case WALLPAPER_CUR_SEL_HOME_SCREEN: - snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_HOME_SCREEN_CHANGED); - break; - case WALLPAPER_CUR_SEL_LOCK_SCREEN: - snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_LOCK_SCREEN_CHANGED); - break; - case WALLPAPER_CUR_SEL_HOME_AND_LOCK_SCREEN: - snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_HOME_AND_LOCK_SCREEN_CHANGED); - break; - default: - ad->cur_sel = WALLPAPER_CUR_SEL_NONE; - return; - } - - setting_create_sel_info_popup(ad->view_layout, - &(ad->selInfoPop_layout), - &(ad->selInfoPop)); - elm_notify_timeout_set(ad->selInfoPop, SETTING_WALLPAPER_POPUP_TIMER); - - edje_object_part_text_set(_EDJ(ad->selInfoPop_layout), "elm.text", text); - ad->cur_sel = WALLPAPER_CUR_SEL_NONE; - ad->wallpaper_changed = EINA_FALSE; } static void __setting_display_wallpaper_imageviewer_ug_destroy_cb(ui_gadget_h ug, void *priv) @@ -198,6 +157,42 @@ static void __setting_display_wallpaper_imageviewer_ug_destroy_cb(ui_gadget_h ug ug_destroy(ug); ad->ug_imageviewer = NULL; } + + if (ad->wallpaper_changed) { + if (ad->ug_gallery) { + ug_destroy(ad->ug_gallery); + ad->ug_gallery = NULL; + } + + char text[MAX_DISPLAY_NAME_LEN_ON_UI +1] = {0, }; + SETTING_TRACE("cur_sel = %d", ad->cur_sel); + + switch(ad->cur_sel) { + case WALLPAPER_CUR_SEL_HOME_SCREEN: + snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_HOME_SCREEN_CHANGED); + break; + case WALLPAPER_CUR_SEL_LOCK_SCREEN: + snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_LOCK_SCREEN_CHANGED); + break; + case WALLPAPER_CUR_SEL_HOME_AND_LOCK_SCREEN: + snprintf(text, MAX_DISPLAY_NAME_LEN_ON_UI, "%s", SETTING_WALLPAPER_HOME_AND_LOCK_SCREEN_CHANGED); + break; + default: + ad->cur_sel = WALLPAPER_CUR_SEL_NONE; + return; + } + + setting_create_sel_info_popup(ad->view_layout, + &(ad->selInfoPop_layout), + &(ad->selInfoPop)); + elm_notify_timeout_set(ad->selInfoPop, SETTING_WALLPAPER_POPUP_TIMER); + + edje_object_part_text_set(_EDJ(ad->selInfoPop_layout), "elm.text", text); + ad->cur_sel = WALLPAPER_CUR_SEL_NONE; + ad->wallpaper_changed = EINA_FALSE; + } else { + SETTING_TRACE("wallpaper not changed"); + } } static void __setting_display_wallpaper_gallery_ug_result_cb(ui_gadget_h ug, service_h result, void *priv) @@ -418,6 +413,7 @@ static int setting_display_wallpaper_create(void *cb) return SETTING_RETURN_FAIL; } + ad->wallpaper_changed = EINA_FALSE; setting_view_display_wallpaper.is_create = 1; #if DISABLED_CODE __setting_display_wallpaper_listen_vconf_change(ad); -- 2.7.4