summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/elementary/test_flip_page.c4
-rw-r--r--src/lib/evas/canvas/evas_map.c9
2 files changed, 8 insertions, 5 deletions
diff --git a/src/bin/elementary/test_flip_page.c b/src/bin/elementary/test_flip_page.c
index 2aebf17..4dc2734 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,
130static void 130static void
131_slice_3d(State *st EINA_UNUSED, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) 131_slice_3d(State *st EINA_UNUSED, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)
132{ 132{
133 Evas_Map *m = (Evas_Map *)evas_object_map_get(sl->obj); 133 Evas_Map *m = evas_map_dup(evas_object_map_get(sl->obj));
134 int i; 134 int i;
135 135
136 if (!m) return; 136 if (!m) return;
@@ -145,6 +145,7 @@ _slice_3d(State *st EINA_UNUSED, Slice *sl, Evas_Coord x, Evas_Coord y, Evas_Coo
145 if (evas_map_util_clockwise_get(m)) evas_object_show(sl->obj); 145 if (evas_map_util_clockwise_get(m)) evas_object_show(sl->obj);
146 else evas_object_hide(sl->obj); 146 else evas_object_hide(sl->obj);
147 evas_object_map_set(sl->obj, m); 147 evas_object_map_set(sl->obj, m);
148 evas_map_free(m);
148} 149}
149 150
150static void 151static void
@@ -663,7 +664,6 @@ _state_update(State *st)
663 num++; 664 num++;
664 } 665 }
665 } 666 }
666
667 num = 0; 667 num = 0;
668 for (i = 0; i < st->slices_w; i++) 668 for (i = 0; i < st->slices_w; i++)
669 { 669 {
diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c
index b3207e9..7f8e794 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)
556{ 556{
557 Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj); 557 Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj);
558 558
559 evas_object_async_block(obj);
560
559 // check if the new map and current map attributes are same 561 // check if the new map and current map attributes are same
560 if (map && obj->map->cur.map && 562 if (map && obj->map->cur.map &&
561 (obj->map->cur.map->alpha == map->alpha) && 563 (obj->map->cur.map->alpha == map->alpha) &&
562 (obj->map->cur.map->smooth == map->smooth) && 564 (obj->map->cur.map->smooth == map->smooth) &&
563 (obj->map->cur.map->move_sync.enabled == map->move_sync.enabled) && 565 (obj->map->cur.map->move_sync.enabled == map->move_sync.enabled) &&
566 (obj->map->cur.map->move_sync.diff_x == map->move_sync.diff_x) &&
567 (obj->map->cur.map->move_sync.diff_y == map->move_sync.diff_y) &&
564 (obj->map->cur.map->count == map->count)) 568 (obj->map->cur.map->count == map->count))
565 { 569 {
566 const Evas_Map_Point *p1, *p2; 570 const Evas_Map_Point *p1, *p2;
567 p1 = obj->map->cur.map->points; 571 p1 = obj->map->cur.map->points;
568 p2 = map->points; 572 p2 = map->points;
569 if (memcmp(p1, p2, sizeof(Evas_Map_Point) * 573 if (!memcmp(p1, p2, sizeof(Evas_Map_Point) * map->count) &&
570 map->count) == 0) 574 !memcmp(&map->persp, &obj->map->cur.map->persp, sizeof(map->persp)))
571 return; 575 return;
572 } 576 }
573 577
574 evas_object_async_block(obj);
575 if ((!map) || (map->count < 4)) 578 if ((!map) || (map->count < 4))
576 { 579 {
577 if (obj->map->surface) 580 if (obj->map->surface)