xartigas pushed a commit to branch master.

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

commit 765fad936ba3b2e4cbe24a91d3e21dfb2707129f
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Feb 7 12:41:52 2019 +0100

    efl_ui_text: emit EFL_UI_TEXT_EVENT_CHANGED events properly
    
    Summary:
    these should be emitted any time text is changed in the object
    
    fix T7615, T7417, T6978, T6979
    Depends on D7883
    
    Reviewers: bu5hm4n, cedric, segfaultxavi
    
    Reviewed By: segfaultxavi
    
    Subscribers: #reviewers, #committers
    
    Tags: #efl_widgets
    
    Maniphest Tasks: T7615, T7417, T6979, T6978
    
    Differential Revision: https://phab.enlightenment.org/D7884
---
 src/lib/elementary/efl_ui_internal_text_interactive.c | 4 ++++
 src/lib/elementary/efl_ui_text.c                      | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c 
b/src/lib/elementary/efl_ui_internal_text_interactive.c
index 7975cb58df..70571a94e5 100644
--- a/src/lib/elementary/efl_ui_internal_text_interactive.c
+++ b/src/lib/elementary/efl_ui_internal_text_interactive.c
@@ -607,6 +607,7 @@ _range_del_emit(Evas_Object *obj, Efl_Text_Cursor_Cursor 
*cur1, Efl_Text_Cursor_
    evas_textblock_cursor_range_delete(cur1, cur2);
 
    efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED_USER, &info);
+   efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED, NULL);
    if (tmp) free(tmp);
 }
 
@@ -637,6 +638,7 @@ _delete_emit(Eo *obj, Evas_Textblock_Cursor *c, 
Efl_Ui_Internal_Text_Interactive
    evas_textblock_cursor_char_delete(c);
 
    efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED_USER, &info);
+   efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED, NULL);
    if (tmp) free(tmp);
 }
 
@@ -1061,6 +1063,8 @@ end:
    if (changed_user)
      {
         efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED_USER, &info);
+        /* FIXME: this is kinda gross */
+        efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED, NULL);
      }
    (void) 0;
 }
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 5f96f34eda..3be96644a4 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -2120,6 +2120,7 @@ _efl_ui_text_efl_object_constructor(Eo *obj, 
Efl_Ui_Text_Data *sd)
    elm_widget_sub_object_parent_add(obj);
 
    text_obj = efl_add(EFL_UI_INTERNAL_TEXT_INTERACTIVE_CLASS, obj);
+   efl_event_callback_forwarder_add(text_obj, EFL_UI_TEXT_EVENT_CHANGED, obj);
    sd->text_obj = text_obj;
    sd->text_guide_obj = efl_add(EFL_CANVAS_TEXT_CLASS, obj);
    sd->text_table = efl_add(EFL_UI_TABLE_CLASS, obj);
@@ -3892,13 +3893,14 @@ _decoration_defer_all(Eo *obj)
 }
 
 static void
-_efl_ui_text_changed_cb(void *data, const Efl_Event *event EINA_UNUSED)
+_efl_ui_text_changed_cb(void *data, const Efl_Event *event)
 {
    if (efl_invalidated_get(event->object)) return;
    EFL_UI_TEXT_DATA_GET(data, sd);
    sd->text_changed = EINA_TRUE;
    sd->cursor_update = EINA_TRUE;
    _update_guide_text(data, sd);
+   efl_event_callback_call(event->object, EFL_UI_TEXT_EVENT_CHANGED, NULL);
    elm_layout_sizing_eval(data);
    _decoration_defer(data);
 }

-- 


Reply via email to