edje: fix propagation of recursive events.

SVN revision: 57248
This commit is contained in:
Cedric BAIL 2011-02-22 18:09:19 +00:00
parent dd793e2d81
commit 1a2574ee77
2 changed files with 14 additions and 19 deletions

View File

@ -1,7 +1,7 @@
2011-01-29 Carsten Haitzler (The Rasterman) 2011-01-29 Carsten Haitzler (The Rasterman)
1.0.0 release 1.0.0 release
2011-01-30 Tom Hacohen (TAsn) 2011-01-30 Tom Hacohen (TAsn)
* Added "UNDER" cursor mode. * Added "UNDER" cursor mode.
@ -20,11 +20,15 @@
2011-02-10 Cedric BAIL 2011-02-10 Cedric BAIL
* Fix use of recursive alias. * Fix use of recursive alias.
2011-02-21 WooHyun Jung 2011-02-21 WooHyun Jung
* Fix missing cursor changed signale on backspace * Fix missing cursor changed signale on backspace
2011-02-21 Mike Blumenkrantz 2011-02-21 Mike Blumenkrantz
* Add built-in cpp (epp) to provide consistent output on all archs/OSes * 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.

View File

@ -1030,29 +1030,20 @@ _edje_emit(Edje *ed, const char *sig, const char *src)
if (ed2 && ed2 != ed) if (ed2 && ed2 != ed)
{ {
_edje_emit(ed2, newsig, src); _edje_emit(ed2, newsig, src);
return; /* stop processing.
* XXX maybe let signal be processed anyway?
* XXX in this case, just comment this line
*/
} }
else if (rp)
if (rp)
{ {
switch (rp->part->type) switch (rp->part->type)
{ {
case EDJE_PART_TYPE_EXTERNAL: case EDJE_PART_TYPE_EXTERNAL:
{ if (!rp->swallowed_object) break ;
if (!rp->swallowed_object) break ;
_edje_external_signal_emit(rp->swallowed_object, newsig, src); _edje_external_signal_emit(rp->swallowed_object, newsig, src);
return; break ;
}
case EDJE_PART_TYPE_BOX: case EDJE_PART_TYPE_BOX:
case EDJE_PART_TYPE_TABLE: case EDJE_PART_TYPE_TABLE:
{ _edje_emit(rp->edje, newsig, src);
_edje_emit(rp->edje, newsig, src); break ;
return;
}
case EDJE_PART_TYPE_GROUP: case EDJE_PART_TYPE_GROUP:
if (!rp->swallowed_object) break; if (!rp->swallowed_object) break;
@ -1060,7 +1051,7 @@ _edje_emit(Edje *ed, const char *sig, const char *src)
if (!ed2) break; if (!ed2) break;
_edje_emit(ed2, newsig, src); _edje_emit(ed2, newsig, src);
return; break ;
default: default:
fprintf(stderr, "SPANK SPANK SPANK !!!\nYou should never be here !\n"); fprintf(stderr, "SPANK SPANK SPANK !!!\nYou should never be here !\n");
break; break;