diff options
author | Shinwoo Kim <cinoo.kim@samsung.com> | 2018-02-07 16:18:53 +0900 |
---|---|---|
committer | Shinwoo Kim <cinoo.kim@samsung.com> | 2018-02-07 16:25:36 +0900 |
commit | fd8e9f9c4e8dbda6c379dc464f562f5b2c681d31 (patch) | |
tree | 6eb75774071cc43216c912a06315665f863e1f77 | |
parent | d8aa950a388a2d207c598e5b6df459ac4f298bda (diff) | |
download | efl-fd8e9f9c4e8dbda6c379dc464f562f5b2c681d31.tar.gz |
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);
-rw-r--r-- | src/lib/elementary/efl_ui_check.c | 2 | ||||
-rw-r--r-- | 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 |