diff options
author | Tom Hacohen <tom@stosb.com> | 2019-10-02 17:48:11 +0300 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2019-10-12 17:52:19 +0300 |
commit | 0cdbad7bb53c3ef94c63b20b4e225e007654b5b6 (patch) | |
tree | 660e51d4f366696decf3709448fe60491b05b0dc | |
parent | f69efc3ec68052c96d0462fecea72215fa9d12a6 (diff) | |
download | efl-0cdbad7bb53c3ef94c63b20b4e225e007654b5b6.tar.gz |
Call the cursor changed user functions on the interactive cursor.
-rw-r--r-- | src/lib/elementary/Efl_Ui.h | 1 | ||||
-rw-r--r-- | src/lib/elementary/efl2_text_cursor_interactive.eo | 4 | ||||
-rw-r--r-- | src/lib/elementary/efl2_text_raw_editable.c | 32 | ||||
-rw-r--r-- | src/lib/elementary/efl2_text_raw_editable.eo | 2 |
4 files changed, 23 insertions, 16 deletions
diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h index 5f14dff32f..a2fbed55a7 100644 --- a/src/lib/elementary/Efl_Ui.h +++ b/src/lib/elementary/Efl_Ui.h @@ -245,6 +245,7 @@ EAPI Eina_Bool efl_ui_win_autodel_get(const Efl_Ui_Win *obj); # include <efl_ui_text_factory_emoticons.eo.h> # include <efl2_input_text.eo.h> # include <efl2_text_raw_editable.eo.h> +# include <efl2_text_cursor_interactive.eo.h> /* FIXME: Multibuttonentry must not use elm_widget_item */ diff --git a/src/lib/elementary/efl2_text_cursor_interactive.eo b/src/lib/elementary/efl2_text_cursor_interactive.eo index 5695da152a..b69cfe282f 100644 --- a/src/lib/elementary/efl2_text_cursor_interactive.eo +++ b/src/lib/elementary/efl2_text_cursor_interactive.eo @@ -1,7 +1,8 @@ class @beta Efl2.Text.Cursor_Interactive extends Efl2.Text.Cursor { [[Cursor API ]] - c_prefix: efl_text_cursor; + data: null; + c_prefix: efl2_text_cursor; methods { user_text_insert { [[Emulates a user text insertion @@ -13,7 +14,6 @@ class @beta Efl2.Text.Cursor_Interactive extends Efl2.Text.Cursor { } } events { - // FIXME: This is actually called externally to the cursor and in addition to changed. Do it. changed,user: void; [[Called when the cursor position changed beause of user interaction]] } } diff --git a/src/lib/elementary/efl2_text_raw_editable.c b/src/lib/elementary/efl2_text_raw_editable.c index e52c868ff5..1edcd7c4ac 100644 --- a/src/lib/elementary/efl2_text_raw_editable.c +++ b/src/lib/elementary/efl2_text_raw_editable.c @@ -474,7 +474,7 @@ _entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_U efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CHANGED_USER, &info); #warning EFL_UI_TEXT_EVENT_CHANGED //efl_event_callback_call(obj, EFL_UI_TEXT_EVENT_CHANGED, NULL); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); _entry_imf_cursor_info_set(obj, en); @@ -1016,7 +1016,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i _key_down_sel_post(obj, cur, en, shift); } - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } else if (!strcmp(ev->key, "Down") || (!strcmp(ev->key, "KP_Down") && !ev->string)) @@ -1031,7 +1031,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i _key_down_sel_post(obj, cur, en, shift); } - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } else if (!strcmp(ev->key, "Left") || (!strcmp(ev->key, "KP_Left") && !ev->string)) @@ -1051,7 +1051,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } else if (!strcmp(ev->key, "Right") || (!strcmp(ev->key, "KP_Right") && !ev->string)) @@ -1071,7 +1071,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } else if (!strcmp(ev->key, "BackSpace")) { @@ -1161,7 +1161,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i efl2_text_cursor_line_start(cur); _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!alt) && @@ -1177,7 +1177,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i efl2_text_cursor_line_end(cur); _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } #if defined(__APPLE__) && defined(__MACH__) @@ -1316,7 +1316,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i efl2_text_cursor_line_jump_by(cur, -10); _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if (!strcmp(ev->key, "Next") || @@ -1328,7 +1328,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i efl2_text_cursor_line_jump_by(cur, 10); _key_down_sel_post(obj, cur, en, shift); - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter"))) @@ -1758,7 +1758,7 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj EINA_UNUSED, end: if (efl2_text_cursor_compare(tc, efl2_text_raw_editable_main_cursor_get(obj))) { - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } efl_del(tc); @@ -1828,7 +1828,7 @@ _mouse_up_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event_i } if (efl2_text_cursor_compare(tc, cur)) { - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } _entry_imf_cursor_info_set(en); @@ -1924,7 +1924,7 @@ _mouse_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eo *obj, void *event } if (efl2_text_cursor_compare(tc, cur)) { - efl_event_callback_call(obj, EFL2_TEXT_RAW_EDITABLE_EVENT_CURSOR_CHANGED_MANUAL, NULL); + efl_event_callback_call(efl2_text_raw_editable_main_cursor_get(obj), EFL2_TEXT_CURSOR_EVENT_CHANGED_USER, NULL); } efl_del(tc); } @@ -2792,4 +2792,12 @@ _efl2_text_raw_editable_validation_failed(Eo *obj EINA_UNUSED, Efl2_Text_Raw_Edi #warning IMPLEMENTATION } +EOLIAN static unsigned int +_efl2_text_cursor_interactive_user_text_insert(Eo *obj, void *pd EINA_UNUSED, const char *text) +{ + // FIXME: we need to call the changed user event but only after filtering has happened. Need to figure this out. + return efl2_text_cursor_text_insert(obj, text); +} + #include "efl2_text_raw_editable.eo.c" +#include "efl2_text_cursor_interactive.eo.c" diff --git a/src/lib/elementary/efl2_text_raw_editable.eo b/src/lib/elementary/efl2_text_raw_editable.eo index 90e4fb3d49..9417fc4247 100644 --- a/src/lib/elementary/efl2_text_raw_editable.eo +++ b/src/lib/elementary/efl2_text_raw_editable.eo @@ -112,8 +112,6 @@ class @beta Efl2.Text.Raw_Editable extends Efl2.Canvas.Text implements Efl2.Inpu redo,request: void; [[Called when redo is requested]] undo,request: void; [[Called when undo is requested]] - // FIXME: should be removed and the one on cursor interactive used instead. - cursor,changed,manual: void; [[Called on manual cursor change]] // FIXME: Need to improve the docs, not sure what this one actually means and if it should be exposed. Though it's imf related. preedit,changed: void; [[Called when entry preedit changed]] |