and when doing proxy.. lets calc the right proxy id part shall we?
authorraster <raster>
Sat, 20 Aug 2011 13:03:01 +0000 (13:03 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 20 Aug 2011 13:03:01 +0000 (13:03 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@62630 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_calc.c

index 6d02900..12b7671 100644 (file)
@@ -1784,7 +1784,7 @@ _edje_proxy_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edj
        (part_id < 0))
      {
         evas_object_image_source_set(ep->object, NULL);
-        return ;
+        return;
      }
    pp = ed->table_parts[part_id % ed->table_parts_size];
    
@@ -2104,19 +2104,22 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
    if (ep->part->type == EDJE_PART_TYPE_PROXY)
      {
         Edje_Real_Part *pp;
-        int part_id;
+        int part_id = -1;
 
         if (pos >= 0.5)
           part_id = ((Edje_Part_Description_Proxy*) ep->param2->description)->proxy.id;
         else
           part_id = ((Edje_Part_Description_Proxy*) chosen_desc)->proxy.id;
-        pp = ed->table_parts[part_id % ed->table_parts_size];
+        if (part_id >= 0)
+          {
+             pp = ed->table_parts[part_id % ed->table_parts_size];
 #ifdef EDJE_CALC_CACHE
-        if (pp->invalidate)
-          proxy_invalidate = EINA_TRUE;
+             if (pp->invalidate)
+                proxy_invalidate = EINA_TRUE;
 #endif
-        
-        if (!pp->calculated) _edje_part_recalc(ed, ep, flags);
+             
+             if (!pp->calculated) _edje_part_recalc(ed, pp, flags);
+          }
      }
 
 #ifndef EDJE_CALC_CACHE