Fix issue that surfaces are added to conformant multi times 84/160584/2
authorsungwook79.park <sungwook79.park@samsung.com>
Fri, 17 Nov 2017 04:35:51 +0000 (13:35 +0900)
committersungwook79.park <sungwook79.park@samsung.com>
Fri, 17 Nov 2017 05:02:15 +0000 (14:02 +0900)
Change-Id: I5e5c8bf6d14560d38cb2e985d0e79833fa91a103
Signed-off-by: sungwook79.park <sungwook79.park@samsung.com>
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
im_setting_selector/input_method_setting_selector.h
im_setting_selector/input_method_setting_selector_ui.cpp

index 57e1b5e..6ce1ab5 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <Elementary.h>
 #include <dlog.h>
+#include <efl_extension.h>
 
 #ifdef  LOG_TAG
 #undef  LOG_TAG
@@ -45,6 +46,7 @@ typedef struct _appdata {
     Evas_Object *genlist;
     Evas_Object *popup;
     Evas_Object *main_circle_genlist;
+    Eext_Circle_Surface *circle_surface;
 
     int app_state;
     int app_type;
index 551b0a6..6a408c0 100644 (file)
@@ -184,7 +184,7 @@ static void im_setting_list_ime_sel_cb(void *data, Evas_Object *obj, void *event
     ecore_idler_add(_ime_select_idler_cb, ad);
 }
 
-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* parent, Evas_Object* conform)
 {
     if (!parent)
         return NULL;
@@ -192,8 +192,9 @@ static Evas_Object *im_setting_list_genlist_create(Evas_Object* parent, Evas_Obj
     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);
+    if (ad->circle_surface == NULL)
+        ad->circle_surface = eext_circle_surface_conformant_add(conform);
+    Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
     eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
 #endif
     evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -283,7 +284,7 @@ static Evas_Object *im_setting_list_list_create(void *data)
         return NULL;
     im_setting_list_genlist_item_class_create();
     Evas_Object *genlist = NULL;
-    genlist = im_setting_list_genlist_create(ad->popup, ad->conform);
+    genlist = im_setting_list_genlist_create(ad, ad->popup, ad->conform);
     unsigned int i = 0;
 
     /* keyboard list */
@@ -388,7 +389,7 @@ static void im_setting_list_screen_create(void *data)
     ttc->func.text_get = im_setting_list_default_keyboard_title_text_get;
 
     im_setting_list_genlist_item_class_create();
-    genlist = im_setting_list_genlist_create(ad->win, ad->conform);
+    genlist = im_setting_list_genlist_create(ad, ad->win, ad->conform);
 
     elm_genlist_mode_set(genlist, ELM_LIST_SCROLL);
     elm_genlist_item_append(genlist, ttc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
index 644c7cd..9350030 100644 (file)
@@ -19,7 +19,6 @@
 #include "input_method_setting_list_popup_view.h"
 #include <string>
 #include <app.h>
-#include <efl_extension.h>
 #include <vector>
 #include <algorithm>
 #include <tzplatform_config.h>
@@ -470,8 +469,9 @@ static Evas_Object *im_setting_list_genlist_create(appdata *ad)
     elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
 #ifdef _CIRCLE
     /* Circle Surface Creation */
-    Eext_Circle_Surface *circle_surface = eext_circle_surface_conformant_add(ad->conform);
-    ad->main_circle_genlist = eext_circle_object_genlist_add(genlist, circle_surface);
+    if (ad->circle_surface == NULL)
+        ad->circle_surface = eext_circle_surface_conformant_add(ad->conform);
+    ad->main_circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
     eext_rotary_object_event_activated_set(ad->main_circle_genlist, EINA_TRUE);
 #endif
     evas_object_show(genlist);
index e1cc5d5..b516d2a 100644 (file)
@@ -20,6 +20,7 @@
 #include <Elementary.h>
 #include <dlog.h>
 #include <app.h>
+#include <efl_extension.h>
 
 #ifdef  LOG_TAG
 #undef  LOG_TAG
@@ -43,6 +44,7 @@ typedef struct _appdata {
     Evas_Object *naviframe;
     Evas_Object *genlist;
     Evas_Object *popup;
+    Eext_Circle_Surface *circle_surface;
 
     int app_state;
     int app_type;
index e0af4c9..ed1199c 100644 (file)
@@ -17,7 +17,6 @@
 #include "input_method_setting_selector.h"
 #include <string>
 #include <app.h>
-#include <efl_extension.h>
 #include <vector>
 #include <isf_control.h>
 #include <algorithm>
@@ -213,14 +212,15 @@ static void im_setting_selector_ime_sel_cb(void *data, Evas_Object *obj, void *e
     ecore_idler_add(_ime_select_idler_cb, ad);
 }
 
-static Evas_Object *im_setting_selector_genlist_create(Evas_Object* parent, Evas_Object* conform)
+static Evas_Object *im_setting_selector_genlist_create(appdata *ad, Evas_Object* parent, Evas_Object* conform)
 {
     Evas_Object *genlist = elm_genlist_add(parent);
     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);
+    if (ad->circle_surface == NULL)
+        ad->circle_surface = eext_circle_surface_conformant_add(conform);
+    Evas_Object *circle_genlist = eext_circle_object_genlist_add(genlist, ad->circle_surface);
     eext_rotary_object_event_activated_set(circle_genlist, EINA_TRUE);
 #endif
     evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -332,7 +332,7 @@ Evas_Object *im_setting_selector_list_create(void *data)
     appdata *ad = (appdata *)data;
     if (!ad)
         return NULL;
-    ad->genlist = im_setting_selector_genlist_create(ad->popup, ad->conform);
+    ad->genlist = im_setting_selector_genlist_create(ad, ad->popup, ad->conform);
     im_setting_selector_add_ime(ad);
     return ad->genlist;
 }
@@ -458,7 +458,7 @@ static void im_setting_selector_screen_create(void *data)
 
     ad->conform = im_setting_selector_conform_create(ad->win);
     ad->naviframe = im_setting_selector_naviframe_create(ad->conform);
-    genlist = im_setting_selector_genlist_create(ad->win, ad->conform);
+    genlist = im_setting_selector_genlist_create(ad, ad->win, ad->conform);
     evas_object_show(ad->win);
 
     im_setting_selector_genlist_item_class_create();