Enlightenment CVS committal

Author  : rbdpngn
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src


Modified Files:
        ewl_entry.c ewl_text.c 


Log Message:
Fixed the event passing on the entry's value change callback. Added a value
change callback for the text widget.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_entry.c,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -3 -r1.76 -r1.77
--- ewl_entry.c 5 Jan 2004 22:29:55 -0000       1.76
+++ ewl_entry.c 21 Feb 2004 18:11:11 -0000      1.77
@@ -265,6 +265,7 @@
 void ewl_entry_key_down_cb(Ewl_Widget * w, void *ev_data, void *user_data)
 {
        Ewl_Entry *e;
+       char *evd = NULL;
        Ecore_X_Event_Key_Down *ev;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
@@ -286,13 +287,13 @@
        else if (!strcmp(ev->keyname, "Delete"))
                ewl_entry_delete_to_right(e);
        else if (!strcmp(ev->keyname, "Return") || !strcmp(ev->keyname,
-                               "KP_Return"))
-               ewl_callback_call_with_event_data(w, EWL_CALLBACK_VALUE_CHANGED,
-                               EWL_TEXT(w)->text);
-       else if (!strcmp(ev->keyname, "Enter") || !strcmp(ev->keyname,
-                               "KP_Enter"))
+                               "KP_Return") || !strcmp(ev->keyname, "Enter")
+                               || !strcmp(ev->keyname, "KP_Enter")) {
+               evd = ewl_text_get_text(EWL_TEXT(e->text));
                ewl_callback_call_with_event_data(w, EWL_CALLBACK_VALUE_CHANGED,
                                EWL_TEXT(w)->text);
+               FREE(evd);
+       }
        else if (ev->key_compose) {
                ewl_entry_insert_text(e, ev->key_compose);
        }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_text.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -3 -r1.57 -r1.58
--- ewl_text.c  22 Nov 2003 20:01:02 -0000      1.57
+++ ewl_text.c  21 Feb 2004 18:11:11 -0000      1.58
@@ -78,13 +78,17 @@
 void
 ewl_text_set_text(Ewl_Text * t, char *text)
 {
-       Ewl_Widget     *w;
+       Ewl_Widget *w;
+       char *evdata = NULL;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("t", t);
 
        w = EWL_WIDGET(t);
 
+       if ((text == t->text) || (text && t->text && !strcmp(t->text, text)))
+               DRETURN(DLEVEL_STABLE);
+
        IF_FREE(t->text);
 
        /*
@@ -111,6 +115,11 @@
        else
                t->length = strlen(t->text);
 
+       evdata = strdup(t->text);
+       ewl_callback_call_with_event_data(w, EWL_CALLBACK_VALUE_CHANGED,
+                                         evdata);
+       FREE(evdata);
+
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
 




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to