diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2017-12-13 15:05:15 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2017-12-13 15:36:10 +0900 |
commit | 71552564228d7163260e56d9549b6a19c7b47a72 (patch) | |
tree | 166dfd51ff816a0b08a27b245dbfbc3a10e3c525 | |
parent | d59003a6045d931f6590024cd15b2f3837a5857b (diff) | |
download | efl-71552564228d7163260e56d9549b6a19c7b47a72.tar.gz |
text: Fix event propagation (changed,user)
-rw-r--r-- | src/bin/elementary/test_gfx_filters.c | 4 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_internal_text_interactive.c | 2 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_text.c | 28 |
3 files changed, 19 insertions, 15 deletions
diff --git a/src/bin/elementary/test_gfx_filters.c b/src/bin/elementary/test_gfx_filters.c index b8f0cb43cb..958688f308 100644 --- a/src/bin/elementary/test_gfx_filters.c +++ b/src/bin/elementary/test_gfx_filters.c @@ -522,10 +522,6 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve efl_gfx_filter_program_set(o, code_filter, "code"); efl_text_gfx_filter_set(o, "code"); - // FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME - // Efl.Ui.Text doesn't seem to trigger the proper events during edit - efl_event_callback_add(o, EFL_EVENT_KEY_DOWN, _code_changed_hack, win); - efl_content_set(efl_part(split, "second"), code); } diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c index 002a4ddbd8..b9e97071a0 100644 --- a/src/lib/elementary/efl_ui_internal_text_interactive.c +++ b/src/lib/elementary/efl_ui_internal_text_interactive.c @@ -1057,7 +1057,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void end: if (changed_user) { - efl_event_callback_legacy_call(obj, + efl_event_callback_call(obj, EFL_UI_TEXT_INTERACTIVE_EVENT_CHANGED_USER, &info); } (void) 0; diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c index d3c05639e8..b3d2e5f155 100644 --- a/src/lib/elementary/efl_ui_text.c +++ b/src/lib/elementary/efl_ui_text.c @@ -268,19 +268,20 @@ static void _create_selection_handlers(Evas_Object *obj, Efl_Ui_Text_Data *sd); static void _magnifier_move(void *data); static void _update_decorations(Eo *obj); static void _create_text_cursors(Eo *obj, Efl_Ui_Text_Data *sd); -static void _efl_ui_text_changed_cb(void *data EINA_UNUSED, const Efl_Event *event); -static void _efl_ui_text_selection_changed_cb(void *data EINA_UNUSED, const Efl_Event *event); -static void _efl_ui_text_cursor_changed_cb(void *data EINA_UNUSED, const Efl_Event *event); -static void _efl_ui_text_move_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED); -static void _efl_ui_text_select_none(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd); -static void _efl_ui_text_anchor_hover_end(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd); +static void _efl_ui_text_changed_cb(void *data, const Efl_Event *event); +static void _efl_ui_text_changed_user_cb(void *data, const Efl_Event *event); +static void _efl_ui_text_selection_changed_cb(void *data, const Efl_Event *event); +static void _efl_ui_text_cursor_changed_cb(void *data, const Efl_Event *event); +static void _efl_ui_text_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); +static void _efl_ui_text_select_none(Eo *obj, Efl_Ui_Text_Data *sd); +static void _efl_ui_text_anchor_hover_end(Eo *obj, Efl_Ui_Text_Data *sd); static void _efl_ui_text_anchor_hover_parent_set(Eo *obj, Efl_Ui_Text_Data *sd, Evas_Object *parent); -static const char* _efl_ui_text_selection_get(Eo *obj EINA_UNUSED, Efl_Ui_Text_Data *sd); +static const char* _efl_ui_text_selection_get(Eo *obj, Efl_Ui_Text_Data *sd); static void _edje_signal_emit(Efl_Ui_Text_Data *obj, const char *sig, const char *src); static void _decoration_defer_all(Eo *obj); static inline Eo * _decoration_create(Eo *obj, Efl_Ui_Text_Data *sd, const char *source, Eina_Bool above); static void _decoration_defer(Eo *obj); -static void _anchors_clear_all(Evas_Object *o EINA_UNUSED, Efl_Ui_Text_Data *sd); +static void _anchors_clear_all(Evas_Object *o, Efl_Ui_Text_Data *sd); static void _unused_item_objs_free(Efl_Ui_Text_Data *sd); static void _clear_text_selection(Efl_Ui_Text_Data *sd); @@ -3079,7 +3080,7 @@ _efl_ui_text_efl_object_constructor(Eo *obj, Efl_Ui_Text_Data *sd) evas_object_size_hint_align_set (sd->entry_edje, EVAS_HINT_FILL, EVAS_HINT_FILL); efl_event_callback_add(text_obj, EFL_UI_TEXT_INTERACTIVE_EVENT_CHANGED_USER, - _efl_ui_text_changed_cb, obj); + _efl_ui_text_changed_user_cb, obj); efl_event_callback_add(text_obj, EFL_CANVAS_TEXT_EVENT_CHANGED, _efl_ui_text_changed_cb, obj); efl_event_callback_add(text_obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, @@ -3302,7 +3303,7 @@ _efl_ui_text_efl_object_destructor(Eo *obj, Efl_Ui_Text_Data *sd) text_obj = edje_object_part_swallow_get(sd->entry_edje, "elm.text"); efl_event_callback_del(text_obj, EFL_UI_TEXT_INTERACTIVE_EVENT_CHANGED_USER, - _efl_ui_text_changed_cb, obj); + _efl_ui_text_changed_user_cb, obj); efl_event_callback_del(text_obj, EFL_CANVAS_TEXT_EVENT_CHANGED, _efl_ui_text_changed_cb, obj); efl_event_callback_del(text_obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, @@ -5241,6 +5242,13 @@ _efl_ui_text_changed_cb(void *data, const Efl_Event *event EINA_UNUSED) } static void +_efl_ui_text_changed_user_cb(void *data, const Efl_Event *event EINA_UNUSED) +{ + _decoration_defer_all(data); + _entry_changed_handle(data, EFL_UI_TEXT_EVENT_CHANGED_USER); +} + +static void _efl_ui_text_cursor_changed_cb(void *data, const Efl_Event *event EINA_UNUSED) { EFL_UI_TEXT_DATA_GET(data, sd); |