and when doing proxy.. lets calc the right proxy id part shall we?
authorCarsten Haitzler <raster@rasterman.com>
Sat, 20 Aug 2011 13:03:01 +0000 (13:03 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sat, 20 Aug 2011 13:03:01 +0000 (13:03 +0000)
SVN revision: 62630

legacy/edje/src/lib/edje_calc.c

index 6d02900aa16d3dc6c4a904c18980b816fcf21d75..12b7671cad4b3761eae299b29a116de0a0109aa8 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