From edcd796fbf8ca29144bacd67bfdad39cd849b77b Mon Sep 17 00:00:00 2001 From: cedric Date: Tue, 22 Feb 2011 18:09:19 +0000 Subject: [PATCH] edje: fix propagation of recursive events. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@57248 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 10 +++++++--- src/lib/edje_program.c | 23 +++++++---------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index fa5d281..f0a5df2 100644 --- 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. @@ -20,11 +20,15 @@ 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. diff --git a/src/lib/edje_program.c b/src/lib/edje_program.c index 6b40259..ea344dc 100644 --- a/src/lib/edje_program.c +++ b/src/lib/edje_program.c @@ -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; -- 2.7.4