diff options
author | Tom Hacohen <tom@stosb.com> | 2016-06-13 08:34:22 +0100 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2016-06-13 08:34:22 +0100 |
commit | a88e93196c0259bbbed021407b578a961dec1d60 (patch) | |
tree | 4ee01ace235cffcc424616335f2497cf3f38b04c | |
parent | 121e586ca0f65bf5fb2e38ad8019645c1709768b (diff) | |
download | efl-a88e93196c0259bbbed021407b578a961dec1d60.tar.gz |
Ui internal: Emit an event for selection changed.
-rw-r--r-- | src/lib/elementary/efl_ui_internal_text_interactive.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c index 76d0c93c47..a319eafcd4 100644 --- a/src/lib/elementary/efl_ui_internal_text_interactive.c +++ b/src/lib/elementary/efl_ui_internal_text_interactive.c @@ -549,15 +549,22 @@ _sel_enable(Evas_Textblock_Cursor *c EINA_UNUSED, } static void -_emit_sel_state(Efl_Ui_Internal_Text_Interactive_Data *en) +_emit_sel_state(Efl_Ui_Internal_Text_Interactive *obj, Efl_Ui_Internal_Text_Interactive_Data *en) { + Efl_Ui_Text_Interactive_Selection_Info info = {0}; + if (efl_canvas_text_cursor_equal(en->sel_start, en->sel_end)) { - // _emit("selection,reset", en->rp->part->name); + info.start = info.end = NULL; + + eo_event_callback_call(obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info); } else { - // _emit("selection,changed", en->rp->part->name); + info.start = en->sel_start; + info.end = en->sel_end; + + eo_event_callback_call(obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info); } } @@ -577,7 +584,7 @@ _sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Inter free(en->selection); en->selection = NULL; } - _emit_sel_state(en); + _emit_sel_state(o, en); } static void @@ -596,11 +603,11 @@ _sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_In free(en->selection); en->selection = NULL; } - _emit_sel_state(en); + _emit_sel_state(o, en); } static void -_sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en) +_sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en) { en->had_sel = EINA_FALSE; if (en->sel_start) @@ -628,7 +635,10 @@ _sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Efl if (en->have_selection) { en->have_selection = EINA_FALSE; - // _emit("selection,cleared", en->rp->part->name); + Efl_Ui_Text_Interactive_Selection_Info info = {0}; + info.start = info.end = NULL; + + eo_event_callback_call(o, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info); } } |