From: Jihoon Kim <jihoon48.kim@samsung.com>
authorJihoon Kim <jihoon48.kim@samsung.com>
Fri, 27 May 2011 10:46:51 +0000 (10:46 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 27 May 2011 10:46:51 +0000 (10:46 +0000)
When elm_entry_entry_set() is called, the preedit text in the entry should
be cleared. ATM, it doesn’t works so.

This patch will resolve this problem.

When ecore_imf_context_reset() is called, the preedit text in the immodule
will be committed by calling ‘ecore_imf_context_commit_event_add()’.

ecore_imf_context_commit_event_add puts the event in ecore event queue, so
it will be processed in the idle state of ecore loop.

According to this mechanism, commit text is inserted later, so I use
‘ecore_main_loop_iterate();’ for inserting the commit string instantly.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@59732 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_entry.c

index 39d3b64..0182da7 100644 (file)
@@ -2035,6 +2035,13 @@ _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text)
    Entry *en = rp->entry_data;
    if (!en) return;
 
+#ifdef HAVE_ECORE_IMF
+   if ((en->have_preedit) && (en->imf_context))
+     {
+        ecore_imf_context_reset(en->imf_context);
+        ecore_main_loop_iterate();
+     }
+#endif
    // set text as markup
    _sel_clear(en->cursor, rp->object, en);
    evas_object_textblock_text_markup_set(rp->object, text);