From aecc018012e772af33aae0c2ff6b59579b89c0c6 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Thu, 21 Oct 2010 08:23:45 +0000 Subject: [PATCH] Edje entry: Fixed _edje_entry_imf_event_delete_surrounding_cb to actually delete, which it wasn't doing. Patch by Jihoon Kim. SVN revision: 53709 --- legacy/edje/src/lib/edje_entry.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index 0388393b9b..3f60fefc15 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -2628,6 +2628,8 @@ _edje_entry_imf_event_delete_surrounding_cb(void *data, int type __UNUSED__, voi Edje_Real_Part *rp = ed->focused_part; Entry *en; Ecore_IMF_Event_Delete_Surrounding *ev = event; + Evas_Textblock_Cursor *del_start, *del_end; + int cursor_pos; if (!rp) return ECORE_CALLBACK_PASS_ON; en = rp->entry_data; @@ -2637,6 +2639,19 @@ _edje_entry_imf_event_delete_surrounding_cb(void *data, int type __UNUSED__, voi if (en->imf_context != ev->ctx) return ECORE_CALLBACK_PASS_ON; + cursor_pos = evas_textblock_cursor_pos_get(en->cursor); + + del_start = evas_object_textblock_cursor_new(en->rp->object); + evas_textblock_cursor_pos_set(del_start, cursor_pos + ev->offset); + + del_end = evas_object_textblock_cursor_new(en->rp->object); + evas_textblock_cursor_pos_set(del_end, cursor_pos + ev->offset + ev->n_chars); + + evas_textblock_cursor_range_delete(del_start, del_end); + + evas_textblock_cursor_free(del_start); + evas_textblock_cursor_free(del_end); + return ECORE_CALLBACK_DONE; } #endif