From 0c9953cfd3cdfa7ef261d5cf7919ff648974cde3 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 13 Jun 2016 10:05:58 +0900 Subject: [PATCH] Fix issue rotary doesn't work after pressing back button in keyboard selection menu Change-Id: Iec5b177592b5651390643c9d564c7b52360c0734 --- im_setting_list/input_method_setting_list.h | 1 + .../input_method_setting_list_popup_view.cpp | 16 ++++++++++++++-- im_setting_list/input_method_setting_list_ui.cpp | 12 ++++++------ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/im_setting_list/input_method_setting_list.h b/im_setting_list/input_method_setting_list.h index b82f819..57e1b5e 100644 --- a/im_setting_list/input_method_setting_list.h +++ b/im_setting_list/input_method_setting_list.h @@ -44,6 +44,7 @@ typedef struct _appdata { Evas_Object *naviframe; Evas_Object *genlist; Evas_Object *popup; + Evas_Object *main_circle_genlist; int app_state; int app_type; diff --git a/im_setting_list/input_method_setting_list_popup_view.cpp b/im_setting_list/input_method_setting_list_popup_view.cpp index 62b8422..8ac7b4d 100644 --- a/im_setting_list/input_method_setting_list_popup_view.cpp +++ b/im_setting_list/input_method_setting_list_popup_view.cpp @@ -35,7 +35,7 @@ static int g_active_ime_id = -1; typedef struct { void *data; int index; -}sel_cb_data; +} sel_cb_data; class ime_info_compare { @@ -324,6 +324,17 @@ im_setting_list_default_keyboard_title_text_get(void *data, Evas_Object *obj, co return strdup(IM_SETTING_LIST_POPUP_VIEW_TITLE); } +static Eina_Bool _pop_cb(void *data, Elm_Object_Item *it) +{ +#ifdef _CIRCLE + appdata *ad = (appdata *)data; + if (ad && ad->main_circle_genlist) + eext_rotary_object_event_activated_set(ad->main_circle_genlist, EINA_TRUE); +#endif + + return EINA_TRUE; +} + static void im_setting_list_screen_create(void *data) { appdata *ad = NULL; @@ -369,7 +380,8 @@ static void im_setting_list_screen_create(void *data) im_setting_list_add_padding(genlist); #endif - elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, genlist, "empty"); + Elm_Object_Item *navi_it = elm_naviframe_item_push(ad->naviframe, NULL, NULL, NULL, genlist, "empty"); + elm_naviframe_item_pop_cb_set(navi_it, _pop_cb, ad); } #endif diff --git a/im_setting_list/input_method_setting_list_ui.cpp b/im_setting_list/input_method_setting_list_ui.cpp index 056c9af..42aa708 100644 --- a/im_setting_list/input_method_setting_list_ui.cpp +++ b/im_setting_list/input_method_setting_list_ui.cpp @@ -438,15 +438,15 @@ static Evas_Object *im_setting_list_naviframe_create(Evas_Object* parent) return naviframe; } -static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent, Evas_Object* conform) +static Evas_Object *im_setting_list_genlist_create(appdata *ad) { - Evas_Object *genlist = elm_genlist_add(parent); + Evas_Object *genlist = elm_genlist_add(ad->naviframe); elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS); #ifdef _CIRCLE /* Circle Surface Creation */ - Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(conform); - Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface); - eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE); + Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(ad->conform); + ad->main_circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface); + eext_rotary_object_event_activated_set(ad->main_circle_genlist, EINA_TRUE); #endif evas_object_show(genlist); return genlist; @@ -764,7 +764,7 @@ Evas_Object *im_setting_list_list_create(void *data) return NULL; ad->conform = im_setting_list_conform_create(ad->win); ad->naviframe = im_setting_list_naviframe_create(ad->conform); - ad->genlist = im_setting_list_genlist_create(ad->naviframe, ad->conform); + ad->genlist = im_setting_list_genlist_create(ad); im_setting_list_add_ime(ad); /* Add genlist to naviframe */ -- 2.34.1