edje: correctly propagate preload signal with GROUP.
authorcedric <cedric>
Wed, 7 Mar 2012 16:52:35 +0000 (16:52 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 7 Mar 2012 16:52:35 +0000 (16:52 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@69004 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/lib/edje_util.c

index f31d28e..e4f53e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * 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 (file)
--- 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:
 -------------------------
 
index 31183e1..da1a158 100644 (file)
@@ -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--;
                  }