diff --git a/legacy/edje/ChangeLog b/legacy/edje/ChangeLog index f31d28ea77..e4f53e1764 100644 --- a/legacy/edje/ChangeLog +++ b/legacy/edje/ChangeLog @@ -382,3 +382,7 @@ * Entry: Replaced edje_object_part_text_style_user_set/get with edje_object_part_text_style_user_set/get to correspond to textblock's recent changes. + +2012-03-07 Cedric Bail + + * Correctly count and propagate preload signal with GROUP. diff --git a/legacy/edje/NEWS b/legacy/edje/NEWS index 6b8c8f6182..01b76769b1 100644 --- a/legacy/edje/NEWS +++ b/legacy/edje/NEWS @@ -22,6 +22,9 @@ Improvements: * Lua scripts now more resilient against API changes. * edje_cc only store the image activelly used in an edje file. +Fixes: + * Correctly count and propagate preload signal with GROUP. + Changes since Edje 1.0.0: ------------------------- diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index 31183e152f..da1a158309 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -3917,9 +3917,21 @@ edje_object_preload(Evas_Object *obj, Eina_Bool cancel) else if (ep->type == EDJE_PART_TYPE_GROUP) { if (rp->swallowed_object) { - edje_object_signal_callback_del(rp->swallowed_object, EDJE_PRELOAD_EMISSION, EDJE_PRELOAD_SOURCE, _edje_object_signal_preload_cb); - edje_object_signal_callback_add(rp->swallowed_object, EDJE_PRELOAD_EMISSION, EDJE_PRELOAD_SOURCE, _edje_object_signal_preload_cb, ed); - edje_object_preload(rp->swallowed_object, cancel); + char *tmp; + + if (rp->part->name) + { + tmp = alloca(strlen(rp->part->name) + 2); + sprintf(tmp, "%s:", rp->part->name); + + edje_object_signal_callback_del(obj, EDJE_PRELOAD_EMISSION, tmp, _edje_object_signal_preload_cb); + edje_object_signal_callback_add(obj, EDJE_PRELOAD_EMISSION, tmp, _edje_object_signal_preload_cb, ed); + edje_object_preload(rp->swallowed_object, cancel); + } + else + { + ed->preload_count--; + } count--; }