summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2019-10-02 17:48:11 +0300
committerTom Hacohen <tom@stosb.com>2019-10-12 17:52:19 +0300
commit0cdbad7bb53c3ef94c63b20b4e225e007654b5b6 (patch)
tree660e51d4f366696decf3709448fe60491b05b0dc
parentf69efc3ec68052c96d0462fecea72215fa9d12a6 (diff)
downloadefl-0cdbad7bb53c3ef94c63b20b4e225e007654b5b6.tar.gz
Call the cursor changed user functions on the interactive cursor.
-rw-r--r--src/lib/elementary/Efl_Ui.h1
-rw-r--r--src/lib/elementary/efl2_text_cursor_interactive.eo4
-rw-r--r--src/lib/elementary/efl2_text_raw_editable.c32
-rw-r--r--src/lib/elementary/efl2_text_raw_editable.eo2
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]]