avoid recursion!
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 25 Jan 2010 11:04:32 +0000 (11:04 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 25 Jan 2010 11:04:32 +0000 (11:04 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@45548 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_map.c

index 6f1d1cd..99445d4 100644 (file)
@@ -37,6 +37,7 @@ _evas_map_calc_map_geometry(Evas_Object *obj)
 {
    Evas_Coord x1, x2, y1, y2;
    const Evas_Map_Point *p, *p_end;
+   int ch;
 
    if (!obj->cur.map) return;
    p = obj->cur.map->points;
@@ -53,11 +54,16 @@ _evas_map_calc_map_geometry(Evas_Object *obj)
         if (p->y < y1) y1 = p->y;
         if (p->y > y2) y2 = p->y;
      }
+   ch = 0;
+   if (obj->cur.map->normal_geometry.x != x1) ch = 1;
+   if (obj->cur.map->normal_geometry.y != y1) ch = 1;
+   if (obj->cur.map->normal_geometry.w != (x2 - x1)) ch = 1;
+   if (obj->cur.map->normal_geometry.h != (y2 - y1)) ch = 1;
    obj->cur.map->normal_geometry.x = x1;
    obj->cur.map->normal_geometry.y = y1;
    obj->cur.map->normal_geometry.w = (x2 - x1);
    obj->cur.map->normal_geometry.h = (y2 - y1);
-   _evas_map_calc_geom_change(obj);
+   if (ch) _evas_map_calc_geom_change(obj);
 }
 
 static inline Evas_Map *