diff --git a/src/bin/elementary/test_flip_page.c b/src/bin/elementary/test_flip_page.c index 2aebf175b2..4dc27341c7 100644 --- a/src/bin/elementary/test_flip_page.c +++ b/src/bin/elementary/test_flip_page.c @@ -130,7 +130,7 @@ _slice_apply(State *st, Slice *sl, static void _slice_3d(State *st EINA_UNUSED, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { - Evas_Map *m = (Evas_Map *)evas_object_map_get(sl->obj); + Evas_Map *m = evas_map_dup(evas_object_map_get(sl->obj)); int i; if (!m) return; @@ -145,6 +145,7 @@ _slice_3d(State *st EINA_UNUSED, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coo if (evas_map_util_clockwise_get(m)) evas_object_show(sl->obj); else evas_object_hide(sl->obj); evas_object_map_set(sl->obj, m); + evas_map_free(m); } static void @@ -663,7 +664,6 @@ _state_update(State *st) num++; } } - num = 0; for (i = 0; i < st->slices_w; i++) { diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c index b3207e995a..7f8e794a45 100644 --- a/src/lib/evas/canvas/evas_map.c +++ b/src/lib/evas/canvas/evas_map.c @@ -556,22 +556,25 @@ evas_object_map_set(Evas_Object *eo_obj, const Evas_Map *map) { Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj); + evas_object_async_block(obj); + // check if the new map and current map attributes are same if (map && obj->map->cur.map && (obj->map->cur.map->alpha == map->alpha) && (obj->map->cur.map->smooth == map->smooth) && (obj->map->cur.map->move_sync.enabled == map->move_sync.enabled) && + (obj->map->cur.map->move_sync.diff_x == map->move_sync.diff_x) && + (obj->map->cur.map->move_sync.diff_y == map->move_sync.diff_y) && (obj->map->cur.map->count == map->count)) { const Evas_Map_Point *p1, *p2; p1 = obj->map->cur.map->points; p2 = map->points; - if (memcmp(p1, p2, sizeof(Evas_Map_Point) * - map->count) == 0) + if (!memcmp(p1, p2, sizeof(Evas_Map_Point) * map->count) && + !memcmp(&map->persp, &obj->map->cur.map->persp, sizeof(map->persp))) return; } - evas_object_async_block(obj); if ((!map) || (map->count < 4)) { if (obj->map->surface)