jpeg pushed a commit to branch master.

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

commit 71552564228d7163260e56d9549b6a19c7b47a72
Author: Jean-Philippe Andre <[email protected]>
Date:   Wed Dec 13 15:05:15 2017 +0900

    text: Fix event propagation (changed,user)
---
 src/bin/elementary/test_gfx_filters.c              |  4 ----
 .../elementary/efl_ui_internal_text_interactive.c  |  2 +-
 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);

-- 


Reply via email to