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

Reply via email to