From 104319907f3f67a25bcd97aa4d35a6221cb4a806 Mon Sep 17 00:00:00 2001 From: cedric Date: Wed, 7 Mar 2012 16:52:35 +0000 Subject: [PATCH] edje: correctly propagate preload signal with GROUP. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@69004 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 4 ++++ NEWS | 3 +++ src/lib/edje_util.c | 18 +++++++++++++++--- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f31d28e..e4f53e1 100644 --- a/ChangeLog +++ b/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/NEWS b/NEWS index 6b8c8f6..01b7676 100644 --- a/NEWS +++ b/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/src/lib/edje_util.c b/src/lib/edje_util.c index 31183e1..da1a158 100644 --- a/src/lib/edje_util.c +++ b/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--; } -- 2.7.4