diff --git a/src/lib/efl/interfaces/efl_text_types.eot b/src/lib/efl/interfaces/efl_text_types.eot index 956a8085c1..9f3e0d2690 100644 --- a/src/lib/efl/interfaces/efl_text_types.eot +++ b/src/lib/efl/interfaces/efl_text_types.eot @@ -10,6 +10,12 @@ enum Efl.Text_Bidirectional_Type { inherit [[Inherit text type]] } +enum @beta Efl.Text_Change_Type { + [[Text change type.]] + insert = 0, [[the content was inserted.]] + remove [[the content was removed.]] +} + struct @beta Efl.Text_Change_Info { [[This structure includes all the information about content changes. @@ -18,6 +24,6 @@ struct @beta Efl.Text_Change_Info { content: string; [[The content added/removed]] position: size; [[The position where it was added/removed]] length: size; [[The length of content in characters (not bytes, actual unicode characters)]] - insertion: bool; [[$true if the content was inserted, $false if removed]] + type: Efl.Text_Change_Type; [[Text change type]] mergeable: bool; [[$true if can be merged with the previous one. Used for example with insertion when something is already selected]] } diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c index fc43e6fbe9..81cf950efe 100644 --- a/src/lib/elementary/efl_ui_internal_text_interactive.c +++ b/src/lib/elementary/efl_ui_internal_text_interactive.c @@ -289,7 +289,7 @@ _text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_ if (changeinfo) { info = calloc(1, sizeof(*info)); - info->insertion = EINA_TRUE; + info->type = EFL_TEXT_CHANGE_TYPE_INSERT; info->content = eina_stringshare_add(text); info->length = eina_unicode_utf8_get_len(info->content); @@ -611,7 +611,7 @@ _entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_U tmp = efl_text_cursor_range_text_get(del_start, del_end); - info.insertion = EINA_FALSE; + info.type = EFL_TEXT_CHANGE_TYPE_REMOVE; info.position = start; info.length = end - start; info.content = tmp; @@ -955,7 +955,7 @@ _range_del_emit(Evas_Object *obj, Efl_Text_Cursor *cur1, Efl_Text_Cursor *cur2) if (start == end) return; - info.insertion = EINA_FALSE; + info.type = EFL_TEXT_CHANGE_TYPE_REMOVE; info.position = start; info.length = end - start; @@ -1001,7 +1001,7 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 }; char *tmp = NULL; - info.insertion = EINA_FALSE; + info.type = EFL_TEXT_CHANGE_TYPE_REMOVE; if (backspace) { @@ -1047,7 +1047,7 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data evas_textblock_cursor_free(cc); } - info.insertion = EINA_FALSE; + info.type = EFL_TEXT_CHANGE_TYPE_REMOVE; info.position = pos; info.length = 1; info.content = tmp; @@ -1531,7 +1531,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void _sel_range_del_emit(obj, en); info.mergeable = EINA_TRUE; } - info.insertion = EINA_TRUE; + info.type = EFL_TEXT_CHANGE_TYPE_INSERT; info.content = string; info.position = efl_text_cursor_position_get(cur); info.length = eina_unicode_utf8_get_len(string); diff --git a/src/lib/elementary/efl_ui_textbox.c b/src/lib/elementary/efl_ui_textbox.c index 024181cc21..936471c643 100644 --- a/src/lib/elementary/efl_ui_textbox.c +++ b/src/lib/elementary/efl_ui_textbox.c @@ -424,7 +424,7 @@ _selection_data_cb(void *data EINA_UNUSED, Eo *obj, efl_text_interactive_all_unselect(obj); } cur = efl_text_interactive_main_cursor_get(obj); - info.insertion = EINA_TRUE; + info.type = EFL_TEXT_CHANGE_TYPE_INSERT; info.position = efl_text_cursor_position_get(cur); info.length = len; info.content = buf; @@ -1945,7 +1945,7 @@ _efl_ui_textbox_selection_cut(Eo *obj, Efl_Ui_Textbox_Data *sd) start_pos = efl_text_cursor_position_get(start); end_pos = efl_text_cursor_position_get(end); tmp = efl_text_cursor_range_text_get(start, end); - info.insertion = EINA_FALSE; + info.type = EFL_TEXT_CHANGE_TYPE_REMOVE; info.position = start_pos; info.length = end_pos - start_pos; info.content = tmp;