Enlightenment CVS committal Author : andrunko Project : e17 Module : libs/etk
Dir : e17/libs/etk/src/lib Modified Files: etk_entry.c Log Message: Proper handle Ecore_IMF commit event. =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_entry.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -3 -r1.50 -r1.51 --- etk_entry.c 12 Dec 2007 19:00:48 -0000 1.50 +++ etk_entry.c 13 Dec 2007 00:09:37 -0000 1.51 @@ -1265,6 +1265,11 @@ { Etk_Entry *entry; Ecore_IMF_Event_Commit *ev = event; + Evas_Object *editable; + int cursor_pos, selection_pos; + int start_pos, end_pos; + Etk_Bool selecting; + Etk_Bool changed = ETK_FALSE; if (!(entry = ETK_ENTRY(data))) return 1; @@ -1272,7 +1277,20 @@ if (entry->imf_context != ev->ctx) return 1; - etk_entry_text_set(entry, ev->str); + editable = entry->editable_object; + cursor_pos = etk_editable_cursor_pos_get(editable); + selection_pos = etk_editable_selection_pos_get(editable); + start_pos = ETK_MIN(cursor_pos, selection_pos); + end_pos = ETK_MAX(cursor_pos, selection_pos); + selecting = (start_pos != end_pos); + + if (selecting) + changed |= etk_editable_delete(editable, start_pos, end_pos); + changed |= etk_editable_insert(editable, start_pos, ev->str); + + if (changed) + etk_signal_emit(ETK_ENTRY_TEXT_CHANGED_SIGNAL, ETK_OBJECT(entry)); + return 0; } ------------------------------------------------------------------------- SF.Net email is sponsored by: Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs