From: Ji-hoon Lee Date: Tue, 9 Jul 2013 05:59:33 +0000 (+0900) Subject: Modified to close language popup window when naviframe pops X-Git-Tag: accepted/tizen/generic/20140306.083320~20 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b4c58961c677de23fc1088981cda41ab13c5eb7f;p=platform%2Fcore%2Fuifw%2Fise-default.git Modified to close language popup window when naviframe pops Change-Id: Ic626bc9e78aa5f453cfa6a9cfda25e310ca8c1c5 --- diff --git a/packaging/ise-default.spec b/packaging/ise-default.spec index 7432b53..a206fb4 100644 --- a/packaging/ise-default.spec +++ b/packaging/ise-default.spec @@ -1,6 +1,6 @@ Name: ise-default Summary: Tizen keyboard -Version: 1.0.0 +Version: 1.0.1 Release: 1 Group: TO BE / FILLED IN License: TO BE / FILLED IN diff --git a/src/common.cpp b/src/common.cpp index 7d09769..403b08e 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -62,6 +62,7 @@ static int get_app_window_degree(Evas_Object *keypad_win) int retVal = 0; Ecore_X_Window app_window = 0; + LOGD("Trying to get app window degree for %p\n", keypad_win); Ecore_X_Window win = elm_win_xwindow_get(static_cast(keypad_win)); ret = XGetWindowProperty((Display *)ecore_x_display_get (), ecore_x_window_root_get(win), @@ -80,6 +81,7 @@ static int get_app_window_degree(Evas_Object *keypad_win) &format_return, &nitems_return, &bytes_after_return, &data_angle); + LOGD("app_window : %p, ret %d, %d, %p\n", app_window, ret, type_return, data_angle); if (ret == Success) { if (data_angle) { if (type_return == XA_CARDINAL) { diff --git a/src/include/ise.h b/src/include/ise.h index f855de9..f107515 100644 --- a/src/include/ise.h +++ b/src/include/ise.h @@ -29,7 +29,7 @@ #include "languages.h" -#define ISE_VERSION "1.0.0-1" +#define ISE_VERSION "1.0.1-1" #define LOCALEDIR "/usr/share/locale" #define PRIMARY_LATIN_LANGUAGE "English" diff --git a/src/option.cpp b/src/option.cpp index 92179d5..448aeda 100644 --- a/src/option.cpp +++ b/src/option.cpp @@ -54,6 +54,7 @@ struct OPTION_ELEMENTS { Evas_Object *option_window; Evas_Object *naviframe; + Evas_Object *lang_popup; Ecore_Event_Handler *event_handler; @@ -491,9 +492,22 @@ language_selection_finished_cb(void *data, Evas_Object *obj, void *event_info) } } -Eina_Bool _pop_cb(void *data, Elm_Object_Item *it) +static void _popup_timeout_cb(void *data, Evas_Object * obj, void *event_info) +{ + if (obj) { + evas_object_smart_callback_del(obj, "timeout", _popup_timeout_cb); + evas_object_del(obj); + ad.lang_popup = NULL; + } +} + + +Eina_Bool _pop_cb(void *data, Elm_Object_Item *it) { language_selection_finished_cb(NULL, NULL, NULL); + if (ad.lang_popup) { + _popup_timeout_cb(NULL, ad.lang_popup, NULL); + } return EINA_TRUE; } @@ -577,8 +591,7 @@ static Evas_Object* create_option_language_view(Evas_Object *naviframe) void close_option_window() { - if (ad.option_window) - { + if (ad.option_window) { evas_object_del(ad.option_window); ad.option_window = NULL; } @@ -619,12 +632,6 @@ static void input_mode_selected(void *data, Evas_Object *obj, void *event_info) strncpy(main_itemdata[SETTING_ITEM_ID_LANGUAGE].sub_text, languages.c_str(), ITEM_DATA_STRING_LEN - 1); } -static void _response_cb(void *data, Evas_Object * obj, void *event_info) -{ - if (obj) - evas_object_del(obj); -} - static void language_selected(void *data, Evas_Object *obj, void *event_info) { ITEMDATA *item_data = (ITEMDATA*)data; @@ -637,11 +644,11 @@ static void language_selected(void *data, Evas_Object *obj, void *event_info) info->enabled = TRUE; elm_check_state_set(obj, EINA_TRUE); - Evas_Object *lang_popup = elm_popup_add(ad.naviframe); - elm_object_text_set(lang_popup, MSG_NONE_SELECTED); - elm_popup_timeout_set(lang_popup, 3.0); - evas_object_smart_callback_add(lang_popup, "response", _response_cb, ad.naviframe); - evas_object_show(lang_popup); + ad.lang_popup = elm_popup_add(ad.naviframe); + elm_object_text_set(ad.lang_popup, MSG_NONE_SELECTED); + elm_popup_timeout_set(ad.lang_popup, 3.0); + evas_object_smart_callback_add(ad.lang_popup, "timeout", _popup_timeout_cb, ad.naviframe); + evas_object_show(ad.lang_popup); } } }