Fix issue rotary doesn't work after pressing back button in keyboard selection menu 01/74101/1
authorJihoon Kim <jihoon48.kim@samsung.com>
Mon, 13 Jun 2016 01:05:58 +0000 (10:05 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 13 Jun 2016 01:05:58 +0000 (10:05 +0900)
Change-Id: Iec5b177592b5651390643c9d564c7b52360c0734

im_setting_list/input_method_setting_list.h
im_setting_list/input_method_setting_list_popup_view.cpp
im_setting_list/input_method_setting_list_ui.cpp

index b82f8192075cc52158a42407061893f0c7dc0385..57e1b5eac32785fbdf2b4e99d54489628e65a07e 100644 (file)
@@ -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;
index 62b84225548a6096b076e8ed1a587bd90eecc088..8ac7b4df59157fc53b1ad41521227e43f8110f1a 100644 (file)
@@ -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
 
index 056c9af66a3e261b958ec4720ba7b00d85bc4ba6..42aa7087e46ecb3b970f0e8e1da0e8cdbb2e7c7f 100644 (file)
@@ -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 */