check: fix the initial state setting issue. 05/43105/1
authorChunEon Park <chuneon.park@samsung.com>
Wed, 13 May 2015 09:09:25 +0000 (18:09 +0900)
committerSubhransu Mohanty <sub.mohanty@samsung.com>
Wed, 8 Jul 2015 00:24:25 +0000 (09:24 +0900)
Since the "changed" smart callback won't be called if user set the state with the API,
vector needs extra signal protocol for internal communication.

Change-Id: I390c71ba4bed8e1a3456fc448042b871d9651aa6

src/lib/tizen_vector.c

index f499d04c77e2ab92eb663cf34a064f78a5d69a0a..9c75e079f292c4c6b30e513ff22af651db685e19 100644 (file)
@@ -913,11 +913,15 @@ transit_check_default_line_op(Elm_Transit_Effect *effect,
 }
 
 static void
-check_default_changed_cb(void *data, Evas_Object *obj,
-                         void *event_info EINA_UNUSED)
+check_default_changed_cb(void *data, Evas_Object *obj EINA_UNUSED,
+                         const char *emission EINA_UNUSED,
+                         const char *source EINA_UNUSED)
 {
    check_default *vd = data;
 
+   if (!source) return;
+   if (strcmp(source, "tizen_vg")) return;
+
    check_default_init(vd);
 
    Eina_Bool check = elm_check_state_get(obj);
@@ -983,7 +987,7 @@ check_default_del_cb(void *data, Evas *e EINA_UNUSED,
 {
    check_default *vd = data;
    evas_object_data_set(vd->obj, vg_key, NULL);
-   evas_object_smart_callback_del(vd->obj, "changed", check_default_changed_cb);
+   elm_object_signal_callback_del(vd->obj, "elm,check,action,toggle", "tizen_vg", check_default_changed_cb);
    elm_transit_del(vd->transit[0]);
    elm_transit_del(vd->transit[1]);
    elm_transit_del(vd->transit[2]);
@@ -1002,7 +1006,7 @@ tizen_vg_check_default_set(Elm_Check *obj)
      }
    evas_object_data_set(obj, vg_key, vd);
 
-   evas_object_smart_callback_add(obj, "changed", check_default_changed_cb, vd);
+   elm_object_signal_callback_add(obj, "elm,check,action,toggle", "tizen_vg", check_default_changed_cb, vd);
 
    vd->obj = obj;