kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fd8e9f9c4e8dbda6c379dc464f562f5b2c681d31

commit fd8e9f9c4e8dbda6c379dc464f562f5b2c681d31
Author: Shinwoo Kim <cinoo....@samsung.com>
Date:   Wed Feb 7 16:18:53 2018 +0900

    Efl.Ui.Nstate: do not call "changed" callback
    
    Before solving following problem in Efl.Ui.Check
    
    https://phab.enlightenment.org/T6673
    
    The changed callback is called with opposite value,
    if application is using Efl.Ui.Check with state pointer.
    
    The reason is that the changed callback is called in
    efl_ui_nstate_activate, and the value refered by state pointer
    is changed only after the efl_ui_nstate_activate is called.
    
    static void
    _activate(Evas_Object *obj)
    {
       EFL_UI_CHECK_DATA_GET(obj, sd);
    
       efl_ui_nstate_activate(obj);
       if (sd->statep) *sd->statep = efl_ui_nstate_value_get(obj);
---
 src/lib/elementary/efl_ui_check.c  |  2 ++
 src/lib/elementary/efl_ui_nstate.c | 18 ++----------------
 2 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/src/lib/elementary/efl_ui_check.c 
b/src/lib/elementary/efl_ui_check.c
index d36cdb0b1a..d119a8e6b9 100644
--- a/src/lib/elementary/efl_ui_check.c
+++ b/src/lib/elementary/efl_ui_check.c
@@ -75,6 +75,8 @@ _activate(Evas_Object *obj)
              _elm_access_say(E_("State: Off"));
      }
 
+   efl_event_callback_legacy_call(obj, EFL_UI_CHECK_EVENT_CHANGED, NULL);
+
    if (_elm_config->atspi_mode)
        efl_access_state_changed_signal_emit(obj,
                                                                 
EFL_ACCESS_STATE_CHECKED,
diff --git a/src/lib/elementary/efl_ui_nstate.c 
b/src/lib/elementary/efl_ui_nstate.c
index c83ebfc8e4..5896826d09 100644
--- a/src/lib/elementary/efl_ui_nstate.c
+++ b/src/lib/elementary/efl_ui_nstate.c
@@ -63,18 +63,6 @@ _next_state_set(Efl_Ui_Nstate_Data *sd)
    if (sd->state == sd->nstate) sd->state = 0;
 }
 
-static void
-_state_active(Evas_Object *obj, Efl_Ui_Nstate_Data *sd)
-{
-   char buf[64];
-
-   sprintf(buf, "elm,state,changed,%d", sd->state);
-   elm_layout_signal_emit(obj, buf, "elm");
-   edje_object_message_signal_process(elm_layout_edje_get(obj));
-   elm_layout_sizing_eval(obj);
-   efl_event_callback_legacy_call(obj, EFL_UI_NSTATE_EVENT_CHANGED, NULL);
-}
-
 EOLIAN static int
 _efl_ui_nstate_count_get(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd)
 {
@@ -106,12 +94,11 @@ _is_valid_state(Efl_Ui_Nstate_Data *sd, int state)
 }
 
 EOLIAN static void
-_efl_ui_nstate_value_set(Eo *obj, Efl_Ui_Nstate_Data *pd, int state)
+_efl_ui_nstate_value_set(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *pd, int 
state)
 {
    if (!_is_valid_state(pd, state)) return;
 
    pd->state = state;
-   _state_active(obj, pd);
 }
 
 EOLIAN static Efl_Ui_Theme_Apply
@@ -133,10 +120,9 @@ _key_action_activate(Evas_Object *obj, const char *params 
EINA_UNUSED)
 }
 
 EOLIAN static void
-_efl_ui_nstate_activate(Eo *obj, Efl_Ui_Nstate_Data *_pd)
+_efl_ui_nstate_activate(Eo *obj EINA_UNUSED, Efl_Ui_Nstate_Data *_pd)
 {
    _next_state_set(_pd);
-   _state_active(obj, _pd);
 }
 
 EOLIAN static void

-- 


Reply via email to