[radio] render radio in one frame when state_set
authorSung-Taek Hong <sth253.hong@samsung.com>
Thu, 24 Sep 2015 07:10:19 +0000 (16:10 +0900)
committerJaehwan Kim <jae.hwan.kim@samsung.com>
Tue, 17 Nov 2015 05:15:44 +0000 (14:15 +0900)
Signed-off-by: Sung-Taek Hong <sth253.hong@samsung.com>
Change-Id: Ia93d1a0ad5cd7fc27f8dc6ebf9efe37acb81b2cd

src/lib/elm_radio.c
src/lib/tizen_vector.c

index 8c679478f4c2c15e43cd3053fb366193964287ba..b5adf659dc3b3a9d17761b28603e6aebf0a812c7 100644 (file)
@@ -49,6 +49,9 @@ static void
 _state_set(Evas_Object *obj, Eina_Bool state, Eina_Bool activate)
 {
    ELM_RADIO_DATA_GET(obj, sd);
+   //TIZEN_ONLY(20150925): Fix for the state change visual change skips one frame.
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+   //
 
    if (state != sd->state)
      {
@@ -80,6 +83,15 @@ _state_set(Evas_Object *obj, Eina_Bool state, Eina_Bool activate)
              else
                elm_interface_atspi_accessible_state_changed_signal_emit(obj, ELM_ATSPI_STATE_CHECKED, EINA_FALSE);
           }
+        //TIZEN_ONLY(20150925): Fix for the state change visual change skips one frame.
+        //                      as edje signal emit is asyn force one more message_signal
+        //                      to make sure state change related visual change occurs in
+        //                      the same frame.
+        edje_object_message_signal_process(wd->resize_obj);
+        //
+        #ifdef TIZEN_VECTOR_UX
+            tizen_vg_radio_state_set(obj);
+        #endif
      }
 }
 
index b51bf02e1177066076296e2cd0bff443ea27b334..38593919b813af4dba68d4c3ce69f036d9b942a3 100644 (file)
@@ -242,6 +242,16 @@ tizen_vg_radio_set(Elm_Radio *obj)
    elm_object_part_content_set(obj, "tizen_vg_shape2", vd->vg[2]);
 }
 
+void
+tizen_vg_radio_state_set(Elm_Radio *obj)
+{
+   // Fix for the state change visual change skips one frame.
+   // For vector enabled radio, visual change is handled in the
+   // code and it depends on "elm,radio,action,toggle" signal.
+   // as edje signal emit is asyn force one more message_signal to make sure
+   // state change related visual change occurs in the same frame.
+   edje_object_message_signal_process(elm_layout_edje_get(obj));
+}
 
 /////////////////////////////////////////////////////////////////////////
 /* Check: Favorite */