From 19f773ee79488f91532ec13056dce310705a9448 Mon Sep 17 00:00:00 2001 From: cedric Date: Mon, 6 Dec 2010 22:28:38 +0000 Subject: [PATCH] * evas: notice object change on map color change. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@55335 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/canvas/evas_map.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/lib/canvas/evas_map.c b/src/lib/canvas/evas_map.c index a623912..b636ba5 100644 --- a/src/lib/canvas/evas_map.c +++ b/src/lib/canvas/evas_map.c @@ -37,9 +37,36 @@ _evas_map_calc_map_geometry(Evas_Object *obj) { Evas_Coord x1, x2, y1, y2; const Evas_Map_Point *p, *p_end; - int ch; + Eina_Bool ch = EINA_FALSE; if (!obj->cur.map) return; + if (obj->prev.map) + { + if (obj->prev.map->count == obj->cur.map->count) + { + const Evas_Map_Point *p2; + + p = obj->cur.map->points; + p_end = p + obj->cur.map->count; + p2 = obj->cur.map->points; + + for (; p < p_end; p++, p2++) + if (p->a != p2->a || + p->r != p2->r || + p->g != p2->g || + p->b != p2->b) + { + ch = 1; + break; + } + + } + else + { + ch = 1; + } + } + p = obj->cur.map->points; p_end = p + obj->cur.map->count; x1 = p->x; @@ -54,7 +81,6 @@ _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; -- 2.7.4