void *type_private_data);
static void _canvas_text_format_changed(Eo *eo_obj, Efl_Canvas_Textblock_Data *o);
+static void _evas_textblock_cursor_paragraph_first(Efl_Text_Cursor_Handle *cur,
+ Eina_Bool emit_change);
static const Evas_Object_Func object_func =
{
/* methods (compulsory) */
Eina_List *l;
Efl_Text_Cursor_Handle *cur;
- evas_textblock_cursor_paragraph_first(o->cursor);
+ /*update all cursors positions first, without emitting change*/
+ EINA_LIST_FOREACH(o->cursors, l, cur)
+ {
+ _evas_textblock_cursor_paragraph_first(cur, EINA_FALSE);
+ }
+ /*emitting change event for all cursors, after all of them are ready*/
EINA_LIST_FOREACH(o->cursors, l, cur)
{
- evas_textblock_cursor_paragraph_first(cur);
_evas_textblock_cursor_object_changed(cur);
}
_evas_textblock_changed(o, eo_obj);
}
-EAPI void
-evas_textblock_cursor_paragraph_first(Efl_Text_Cursor_Handle *cur)
+static void
+_evas_textblock_cursor_paragraph_first(Efl_Text_Cursor_Handle *cur, Eina_Bool emit_change)
{
if (!cur) return;
Evas_Object_Protected_Data *obj = efl_data_scope_get(cur->obj, EFL_CANVAS_OBJECT_CLASS);
Efl_Canvas_Textblock_Data *o = efl_data_scope_get(cur->obj, MY_CLASS);
cur->node = o->text_nodes;
cur->pos = 0;
- _evas_textblock_cursor_object_changed(cur);
+ if (emit_change)
+ _evas_textblock_cursor_object_changed(cur);
+}
+
+EAPI void
+evas_textblock_cursor_paragraph_first(Efl_Text_Cursor_Handle *cur)
+{
+ _evas_textblock_cursor_paragraph_first(cur, EINA_TRUE);
}
EAPI void
EFL_START_TEST(text_all_select_all_unselect)
{
- Eo *txt;
+ Eo *txt, *txt2;
Eo *win = win_add();
int i_have_selection = 0, i_selection = 0;
efl_text_interactive_all_unselect(txt);
ck_assert_int_eq(i_have_selection, 2);
+ //cursor selection change on efl_markup_set
+ txt2 = efl_add(EFL_UI_TEXTBOX_CLASS, win);
+ efl_text_markup_set(txt2, "<ps>");
efl_del(txt);
+ efl_del(txt2);
efl_del(win);
}
EFL_END_TEST