diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index 6e898fd38b..4b3bc817a2 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -826,6 +826,7 @@ _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text) Entry *en = rp->entry_data; if (!en) return; // set text as markup + _sel_clear(en->cursor, rp->object, en); evas_object_textblock_text_markup_set(rp->object, text); evas_textblock_cursor_node_last(en->cursor); if ((!evas_textblock_cursor_node_format_get(en->cursor)) || @@ -842,7 +843,10 @@ _edje_entry_text_markup_insert(Edje_Real_Part *rp, const char *text) Entry *en = rp->entry_data; if (!en) return; // prepend markup @ cursor pos + if (en->have_selection) + evas_textblock_cursor_range_delete(en->sel_start, en->sel_end); evas_object_textblock_text_markup_prepend(en->cursor, text); + _sel_clear(en->cursor, rp->object, en); _curs_update_from_curs(en->cursor, rp->object, en); _edje_emit(rp->edje, "entry,changed", rp->part->name); }