edje: fix propagation of recursive events.
authorcedric <cedric>
Tue, 22 Feb 2011 18:09:19 +0000 (18:09 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 22 Feb 2011 18:09:19 +0000 (18:09 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@57248 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/edje_program.c

index fa5d281..f0a5df2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
 2011-01-29  Carsten Haitzler (The Rasterman)
 
         1.0.0 release
-        
+
 2011-01-30  Tom Hacohen (TAsn)
 
         * Added "UNDER" cursor mode.
 2011-02-10  Cedric BAIL
 
        * Fix use of recursive alias.
-        
+
 2011-02-21  WooHyun Jung
 
         * Fix missing cursor changed signale on backspace
-        
+
 2011-02-21  Mike Blumenkrantz
 
         * Add built-in cpp (epp) to provide consistent output on all archs/OSes
+
+2011-02-10  Cedric BAIL
+
+       * Fix propagation of recursive events on existing part.
index 6b40259..ea344dc 100644 (file)
@@ -1030,29 +1030,20 @@ _edje_emit(Edje *ed, const char *sig, const char *src)
         if (ed2 && ed2 != ed)
           {
              _edje_emit(ed2, newsig, src);
-             return; /* stop processing.
-                      * XXX maybe let signal be processed anyway?
-                      * XXX in this case, just comment this line
-                      */
           }
-
-        if (rp)
+        else if (rp)
           {
              switch (rp->part->type)
                {
                 case EDJE_PART_TYPE_EXTERNAL:
-                  {
-                     if (!rp->swallowed_object) break ;
+                   if (!rp->swallowed_object) break ;
 
-                     _edje_external_signal_emit(rp->swallowed_object, newsig, src);
-                     return;
-                  }
+                   _edje_external_signal_emit(rp->swallowed_object, newsig, src);
+                   break ;
                 case EDJE_PART_TYPE_BOX:
                 case EDJE_PART_TYPE_TABLE:
-                  {
-                     _edje_emit(rp->edje, newsig, src);
-                     return;
-                  }
+                   _edje_emit(rp->edje, newsig, src);
+                   break ;
                 case EDJE_PART_TYPE_GROUP:
                    if (!rp->swallowed_object) break;
 
@@ -1060,7 +1051,7 @@ _edje_emit(Edje *ed, const char *sig, const char *src)
                    if (!ed2) break;
 
                    _edje_emit(ed2, newsig, src);
-                   return;
+                   break ;
                 default:
                    fprintf(stderr, "SPANK SPANK SPANK !!!\nYou should never be here !\n");
                    break;