From 24b30dd4854c4d27ffbc718e110cbe7546964af2 Mon Sep 17 00:00:00 2001 From: Krzysztof Wieclaw Date: Wed, 18 Jul 2018 14:06:02 +0200 Subject: [PATCH] Button hiding fixed Change-Id: I998a806fd0bd4683d3fa07ca024e84b03078f6ea Signed-off-by: Krzysztof Wieclaw --- src/view/view_name_input.c | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/view/view_name_input.c b/src/view/view_name_input.c index 2b001ce..5dd49a8 100644 --- a/src/view/view_name_input.c +++ b/src/view/view_name_input.c @@ -34,17 +34,7 @@ static s_view_name_input s_info = { {0,}, }; static void _layout_back_cb(void *data, Evas_Object *obj, void *event_info) { elm_win_lower(view_manager_get_win()); -} - -static void _destroy_and_save() -{ - controller_player_name_set(s_info.player_name); -} - -static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) -{ - _destroy_and_save(); - controller_name_input_next(); + controller_name_input_back(); } static Eina_Bool _validate_player_name(const char * player_name) @@ -57,6 +47,7 @@ static Eina_Bool _validate_player_name(const char * player_name) static void _text_entered(Evas_Object * entry) { + elm_object_focus_set(entry, EINA_FALSE); if (elm_entry_is_empty(entry)) { elm_object_signal_emit(s_info.view_base.view, "player,name,invalidated", ""); return; @@ -74,24 +65,33 @@ static void _text_entered(Evas_Object * entry) static void _text_set_cb(void *data, Evas_Object *obj, void *event_info) { _text_entered(obj); - elm_object_focus_set(obj, EINA_FALSE); -} - -static void _char_changed_cb(void *data, Evas_Object *obj, void *event_info) -{ - _text_entered(obj); } -static void _entry_focused_cb(void *data, Evas_Object *obj, void *event_info) +static void _keyboard_showed_cb(void *data, Evas_Object *obj, void *event_info) { + elm_layout_signal_emit(s_info.view_base.view, "player,name,invalidated", ""); elm_layout_signal_emit(s_info.view_base.view, "entry,active", "entry"); } -static void _entry_unfocused_cb(void *data, Evas_Object *obj, void *event_info) +static void _keyboard_hidden_cb(void *data, Evas_Object *obj, void *event_info) { - if (elm_entry_is_empty(obj)) { + if (elm_entry_is_empty((Evas_Object*)data)) { elm_layout_signal_emit(s_info.view_base.view, "entry,inactive", "entry"); } + _text_entered((Evas_Object*)data); +} + +static void _destroy_and_save() +{ + controller_player_name_set(s_info.player_name); + evas_object_smart_callback_del(view_manager_get_conform(), "virtualkeypad,state,on", _keyboard_showed_cb); + evas_object_smart_callback_del(view_manager_get_conform(), "virtualkeypad,state,off", _keyboard_hidden_cb); +} + +static void _ok_button_clicked_cb(void *data, Evas_Object *obj, void *event_info) +{ + _destroy_and_save(); + controller_name_input_next(); } static void _view_name_input_create_gui(Evas_Object *parent) @@ -111,9 +111,8 @@ static void _view_name_input_create_gui(Evas_Object *parent) elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_size); elm_entry_single_line_set(entry, EINA_TRUE); elm_entry_text_style_user_push(entry, ENTRY_STYLE); - evas_object_smart_callback_add(entry, "focused", _entry_focused_cb, NULL); - evas_object_smart_callback_add(entry, "unfocused", _entry_unfocused_cb, NULL); - evas_object_smart_callback_add(entry, "changed", _char_changed_cb, NULL); + evas_object_smart_callback_add(view_manager_get_conform(), "virtualkeypad,state,on", _keyboard_showed_cb, entry); + evas_object_smart_callback_add(view_manager_get_conform(), "virtualkeypad,state,off", _keyboard_hidden_cb, entry); evas_object_smart_callback_add(entry, "activated", _text_set_cb, NULL); elm_layout_content_set(s_info.view_base.view, "entry_placeholder", entry); -- 2.7.4