summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2018-02-07 16:18:53 +0900
committerShinwoo Kim <cinoo.kim@samsung.com>2018-02-07 16:25:36 +0900
commitfd8e9f9c4e8dbda6c379dc464f562f5b2c681d31 (patch)
tree6eb75774071cc43216c912a06315665f863e1f77
parentd8aa950a388a2d207c598e5b6df459ac4f298bda (diff)
downloadefl-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.c2
-rw-r--r--src/lib/elementary/efl_ui_nstate.c18
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