From: Jihoon Kim <jihoon48.kim@samsung.com>

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.



SVN revision: 62039
This commit is contained in:
Jihoon Kim 2011-08-03 05:36:01 +00:00 committed by Carsten Haitzler
parent 601a4e3cef
commit 1f6499a058
1 changed files with 5 additions and 3 deletions

View File

@ -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);