diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 85d9e31e52..80de1e1a63 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -3112,11 +3112,22 @@ void _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text) { Entry *en; + const char *ptext; if ((rp->type != EDJE_RP_TYPE_TEXT) || (!rp->typedata.text)) return; en = rp->typedata.text->entry_data; if (!en) return; + ptext = evas_object_textblock_text_markup_get(rp->object); + // some simple "do nothing if the text is the same" logic + if (ptext == text) return; + // if prev and cur is empty + if (!ptext) ptext = ""; + if (!text) text = ""; + if ((!ptext[0]) && (!text[0])) return; + // same content + if (!strcmp(ptext, text)) return; + _edje_entry_imf_context_reset(rp); // set text as markup _sel_clear(en->ed, en->cursor, rp->object, en);