edje: fix scale set on box and table
authoryoz <yoz>
Fri, 26 Oct 2012 10:15:35 +0000 (10:15 +0000)
committeryoz <yoz@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 26 Oct 2012 10:15:35 +0000 (10:15 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@78517 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/lib/edje_util.c

index 1bd2bd2..eea9b5f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * Edje: change Edje to use Eo.
        This change adds Eo support to Edje while keeping the old API intact.
        For more information, go to Eo.
+
+2012-10-26  Michael Bouchaud (yoz)
+
+        * fix edje_object_scale_set with edje containing boxes and/or tables
diff --git a/NEWS b/NEWS
index 7b64be0..85ae20b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,8 @@ Improvements:
     * Lua 5.2 support added, still works fine with 5.1.
 
 Fixes:
+    * fix scale_set with edje containing boxes and/or tables
+    * fix scale_set with edje containing groups
 
 
 Edje 1.7.0
index 8bdbbac..0c4065d 100644 (file)
@@ -366,6 +366,7 @@ _scale_set(Eo *obj, void *_pd, va_list *list)
    Edje *ed, *ged;
    Evas_Object *o;
    Eina_List *l;
+   int i;
 
    ed = _pd;
    if (ed->scale == scale) return;
@@ -374,6 +375,19 @@ _scale_set(Eo *obj, void *_pd, va_list *list)
       ged->scale = ed->scale;
    EINA_LIST_FOREACH(ed->subobjs, l, o)
       edje_object_calc_force(o);
+   for(i = 0; i < ed->table_parts_size; ++i)
+     {
+        Edje_Real_Part *ep;
+        ep = ed->table_parts[i];
+        if ((ep->part->type == EDJE_PART_TYPE_BOX)
+            || (ep->part->type == EDJE_PART_TYPE_TABLE))
+          {
+             Eina_List *l;
+             Evas_Object *o;
+             EINA_LIST_FOREACH(ep->typedata.container->items, l, o)
+                edje_object_scale_set(o, scale);
+          }
+     }
    edje_object_calc_force(obj);
 }