From 1e109660f9a46549fe2809be94ad9e51a3a7193d Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 3 Aug 2011 05:36:01 +0000 Subject: [PATCH] From: Jihoon Kim Subject: RE: [E-devel] [PATCH] notify immodule to know the cursor location In the current edje_entry, there are some bugs related to sequence and miss to call '_edje_entry_imf_cursor_info_set()'. Cursor geometry information should be transferred after ecore_imf_context_focus_in API is called. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@62039 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/edje_entry.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/edje_entry.c b/src/lib/edje_entry.c index d7fa2e4..0ec4857 100644 --- a/src/lib/edje_entry.c +++ b/src/lib/edje_entry.c @@ -106,8 +106,8 @@ _edje_entry_focus_in_cb(void *data, Evas_Object *o __UNUSED__, const char *emiss if (evas_object_focus_get(rp->edje->obj)) { ecore_imf_context_reset(en->imf_context); - _edje_entry_imf_cursor_info_set(en); ecore_imf_context_focus_in(en->imf_context); + _edje_entry_imf_cursor_info_set(en); } } @@ -124,7 +124,7 @@ _edje_entry_focus_out_cb(void *data, Evas_Object *o __UNUSED__, const char *emis if (!en || !en->imf_context) return; ecore_imf_context_reset(en->imf_context); - ecore_imf_context_cursor_position_set(en->imf_context, evas_textblock_cursor_pos_get(en->cursor)); + _edje_entry_imf_cursor_info_set(en); ecore_imf_context_focus_out(en->imf_context); } #endif @@ -152,6 +152,7 @@ _edje_focus_in_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, v ecore_imf_context_reset(en->imf_context); ecore_imf_context_focus_in(en->imf_context); + _edje_entry_imf_cursor_info_set(en); #endif } @@ -176,7 +177,7 @@ _edje_focus_out_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, if (!en->imf_context) return; ecore_imf_context_reset(en->imf_context); - ecore_imf_context_cursor_position_set(en->imf_context, evas_textblock_cursor_pos_get(en->cursor)); + _edje_entry_imf_cursor_info_set(en); ecore_imf_context_focus_out(en->imf_context); #endif } @@ -2079,6 +2080,7 @@ _edje_entry_text_markup_set(Edje_Real_Part *rp, const char *text) _anchors_get(en->cursor, rp->object, en); _edje_emit(rp->edje, "entry,changed", rp->part->name); + _edje_entry_imf_cursor_info_set(en); #if 0 /* Don't emit cursor changed cause it didn't. It's just init to 0. */ _edje_emit(rp->edje, "cursor,changed", rp->part->name); -- 2.7.4