if (evas_textblock_cursor_compare(tc, en->cursor))
_edje_emit(rp->edje, "cursor,changed", rp->part->name);
evas_textblock_cursor_free(tc);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
if (evas_textblock_cursor_compare(tc, en->cursor))
_edje_emit(rp->edje, "cursor,changed", rp->part->name);
evas_textblock_cursor_free(tc);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
}
_sel_start(en->cursor, rp->object, en);
_curs_end(en->cursor, rp->object, en);
_sel_extend(en->cursor, rp->object, en);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
_sel_enable(en->cursor, rp->object, en);
_sel_start(en->cursor, rp->object, en);
_sel_extend(en->cursor, rp->object, en);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
Entry *en = rp->entry_data;
if (!en) return;
_sel_extend(en->cursor, rp->object, en);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
if (en->selecting)
{
en->selecting = EINA_FALSE;
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
}
Eina_Bool
_edje_entry_cursor_next(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return 0;
if (!evas_textblock_cursor_char_next(c))
ok:
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
return 1;
}
Eina_Bool
_edje_entry_cursor_prev(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return 0;
if (!evas_textblock_cursor_char_prev(c))
ok:
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
return 1;
}
Eina_Bool
_edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch;
int ln;
}
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
return 1;
}
Eina_Bool
_edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch;
int ln;
}
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
return 1;
}
void
_edje_entry_cursor_begin(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return;
evas_textblock_cursor_node_first(c);
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
void
_edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return;
evas_textblock_cursor_node_last(c);
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
void
_edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return;
Evas_Textblock_Cursor *d = _cursor_get(rp, dst);
if (!d) return;
- printf("copy %p to %p\n", c, d);
evas_textblock_cursor_copy(c, d);
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
void
_edje_entry_cursor_line_begin(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return;
evas_textblock_cursor_line_first(c);
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}
void
_edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur)
{
+ Entry *en = rp->entry_data;
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
if (!c) return;
evas_textblock_cursor_line_last(c);
_curs_update_from_curs(c, rp->object, rp->entry_data);
_sel_update(c, rp->object, rp->entry_data);
+
+#ifdef HAVE_ECORE_IMF
+ if (en->imf_context)
+ {
+ ecore_imf_context_reset(en->imf_context);
+ ecore_imf_context_cursor_position_set(en->imf_context,
+ evas_textblock_cursor_pos_get(en->cursor));
+ }
+#endif
+
_edje_entry_real_part_configure(rp);
}