From 42a3f0761acac0f8b2ecdffd6f53ac743a51e112 Mon Sep 17 00:00:00 2001 From: "kiso.chang" Date: Thu, 31 Dec 2015 13:31:36 +0900 Subject: [PATCH] Fix Language popup - Fix the problem not to close popup after selecting language Change-Id: Iaf676f1f488b7cd39e01245c90e72c5975a0b9dc Signed-off-by: kiso.chang Signed-off-by: MyoungJune Park --- res/view/location.edc | 56 +++++++++++++++++++++-------------------- src/layout/layout_system.c | 62 ++++++++++++++++++++++++++++++++-------------- 2 files changed, 73 insertions(+), 45 deletions(-) diff --git a/res/view/location.edc b/res/view/location.edc index 4f9e916..8a5786b 100644 --- a/res/view/location.edc +++ b/res/view/location.edc @@ -23,7 +23,7 @@ group { scale, 1; description { state, "default" 0.0; - color, 244 244 24 255; + color, 244 244 244 255; } } @@ -43,11 +43,11 @@ group { part { name, "bg.bottom"; - type, RECT; + type, SPACER; scale, 1; description { state, "default" 0.0; - color, 255 255 255 255; +// color, 255 255 255 255; min, 0 104; rel1 { relative, 0.0 1.0; @@ -156,19 +156,19 @@ group { scale, 1; description { state, "default" 0.0; - color, 0 255 255 255; - min, 0 72; + min, 384 64; + max, 384 64; + fixed, 0 1; + align, 1.0 0.0; rel1 { - to, "padding.bottom"; - relative, 0.2 1.0; + to, "bg.bottom"; + relative, 0.3 0.0; } rel2 { - to, "padding.bottom"; - relative, 0.4 1.0; + to, "bg.bottom"; + relative, 0.45 0.0; } - align, 0.5 0.0; - fixed, 0 1; } } @@ -178,19 +178,21 @@ group { scale, 1; description { state, "default" 0.0; - color, 0 255 255 255; - min, 0 72; + min, 384 64; + max, 384 64; + fixed, 0 1; + align, 0.0 0.0; rel1 { - to, "padding.bottom"; - relative, 0.6 1.0; + to, "bg.bottom"; + relative, 0.55 0.0; + + } rel2 { - to, "padding.bottom"; - relative, 0.8 1.0; + to, "bg.bottom"; + relative, 0.7 0.0; } - align, 0.5 0.0; - fixed, 0 1; } } @@ -228,17 +230,17 @@ group { scale, 1; description { state, "default" 0.0; - min, 0 200; + min, 0 300; rel1 { to, PART_LOCATION_TEXT; - relative, 0.1 1.0; + relative, 0.2 1.0; } rel2 { to, PART_LOCATION_TEXT; - relative, 0.4 1.0; + relative, 0.45 1.0; } - align, 0.5 0.0; + align, 1.0 0.0; fixed, 0 1; color, 0 255 255 255; @@ -252,17 +254,17 @@ group { scale, 1; description { state, "default" 0.0; - min, 0 200; + min, 0 300; rel1 { to, PART_LOCATION_TEXT; - relative, 0.6 1.0; + relative, 0.55 1.0; } rel2 { to, PART_LOCATION_TEXT; - relative, 0.9 1.0; + relative, 0.8 1.0; } - align, 0.5 0.0; + align, 0.0 0.0; fixed, 0 1; color, 0 255 255 255; } diff --git a/src/layout/layout_system.c b/src/layout/layout_system.c index c7f3b23..716cfe7 100644 --- a/src/layout/layout_system.c +++ b/src/layout/layout_system.c @@ -67,8 +67,6 @@ enum object_type { EO_BTN_LANG_KOR, }; - - static char *_get_status(void *data, int id); static char *_get_clock_mode(void *data, int id); static char *_get_sleep_timer(void *data, int id); @@ -79,6 +77,11 @@ static void _selected(void *data, int id); static void _language_selected(void *data, int id); static void _location_selected(void *data, int id); +// popup handler +static void _remove_language_popup(struct _priv *priv); +static void _popup_clicked_cb(int id, void *data, Evas_Object *obj); +static void _popup_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); + static struct menumgr_info menu_info[] = { { @@ -245,18 +248,9 @@ static void _selected(void *data, int id) } } - - - - -static void _remove_language_popup(struct _priv *priv); -static void _popup_clicked_cb(int id, void *data, Evas_Object *obj); -static void _popup_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, Evas_Event_Key_Down *ev); - - - static input_handler _popup_input_handler = { -// .mouse_move = _mouse_move_cb, + //.mouse_move = _mouse_move_cb, + .mouse_move = NULL, .clicked = _popup_clicked_cb, .key_down = _popup_key_down_cb }; @@ -280,6 +274,7 @@ static void _remove_language_popup(struct _priv *priv) priv->popup_btn2 = NULL; } + evas_object_hide(priv->lang_popup); evas_object_del(priv->lang_popup); priv->lang_popup = NULL; } @@ -300,14 +295,14 @@ static void _popup_clicked_cb(int id, void *data, Evas_Object *obj) switch (id) { case EO_BTN_LANG_ENG: system_settings_set_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, "en_US"); - menumgr_update(priv->menu); - + menumgr_update(priv->menu); + _remove_language_popup(priv); break; case EO_BTN_LANG_KOR: system_settings_set_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, "ko_KR"); - menumgr_update(priv->menu); + menumgr_update(priv->menu); _remove_language_popup(priv); break; @@ -333,7 +328,7 @@ static void _popup_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj, if (!strcmp(ev->keyname, KEY_BACK) || !strcmp(ev->keyname, KEY_ESC)) { _remove_language_popup(priv); - } + } } @@ -377,6 +372,12 @@ static bool _draw_language_select_popup(struct _priv *priv) return false; } + if (priv->lang_popup) + { + evas_object_del(priv->lang_popup); + priv->lang_popup = NULL; + } + elm_object_content_set(popup, ly); priv->lang_popup = popup; @@ -387,8 +388,26 @@ static bool _draw_language_select_popup(struct _priv *priv) inputmgr_add_callback(btn2, EO_BTN_LANG_KOR, &_popup_input_handler, priv); - elm_object_focus_set(btn1, EINA_TRUE); + // Set Focus + { + char *lang; + int r; + + r = system_settings_get_value_string( SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &lang); + if (r != SYSTEM_SETTINGS_ERROR_NONE) { + return false; + } + + if (!strncmp(lang, "en_US",4)) { + elm_object_focus_set(btn1, EINA_TRUE); + } + else { + elm_object_focus_set(btn2, EINA_TRUE); + } + + free(lang); + } return true; } @@ -484,6 +503,13 @@ static bool _create(layoutmgr *lmgr, void *data) return false; } + priv->table=NULL; + priv->menu=NULL; + priv->lang_popup=NULL; + priv->popup_btn1=NULL; + priv->popup_btn2=NULL; + + priv->lmgr = lmgr; priv->base = base; priv->ly = ly; -- 2.7.4