From ee86abe1ea099c159b2feca1d1da3816c804d75e Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 26 Oct 2011 13:33:25 +0000 Subject: [PATCH] fix clip-out issue after making mapped objs opque fix was in. SVN revision: 64413 --- legacy/evas/src/lib/canvas/evas_map.c | 7 ++++--- legacy/evas/src/lib/canvas/evas_object_image.c | 8 +++++++- legacy/evas/src/lib/include/evas_inline.x | 5 +++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/legacy/evas/src/lib/canvas/evas_map.c b/legacy/evas/src/lib/canvas/evas_map.c index 3aab66f..fca8b3a 100644 --- a/legacy/evas/src/lib/canvas/evas_map.c +++ b/legacy/evas/src/lib/canvas/evas_map.c @@ -93,9 +93,10 @@ _evas_map_calc_map_geometry(Evas_Object *obj) if (p->y < y1) y1 = p->y; if (p->y > y2) y2 = p->y; } - // add 1 pixel of fuzz around the map region to ensure updates are correct - x1 -= 1; y1 -= 1; - x2 += 1; y2 += 1; +// this causes clip-out bugs now mapped objs canbe opaque!!! +// // add 1 pixel of fuzz around the map region to ensure updates are correct +// x1 -= 1; y1 -= 1; +// x2 += 1; y2 += 1; 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; diff --git a/legacy/evas/src/lib/canvas/evas_object_image.c b/legacy/evas/src/lib/canvas/evas_object_image.c index fefc177..04b706b 100644 --- a/legacy/evas/src/lib/canvas/evas_object_image.c +++ b/legacy/evas/src/lib/canvas/evas_object_image.c @@ -3498,7 +3498,13 @@ evas_object_image_is_opaque(Evas_Object *obj) (m->points[0].y == m->points[3].y) && (m->points[1].y == m->points[2].y)) ) - return o->cur.opaque; + { + if ((m->points[0].x == obj->cur.geometry.x) && + (m->points[0].y == obj->cur.geometry.y) && + (m->points[2].x == (obj->cur.geometry.x + obj->cur.geometry.w)) && + (m->points[2].y == (obj->cur.geometry.y + obj->cur.geometry.h))) + return o->cur.opaque; + } } o->cur.opaque = 0; return o->cur.opaque; diff --git a/legacy/evas/src/lib/include/evas_inline.x b/legacy/evas/src/lib/include/evas_inline.x index a9787ef..1fc4fc9 100644 --- a/legacy/evas/src/lib/include/evas_inline.x +++ b/legacy/evas/src/lib/include/evas_inline.x @@ -207,13 +207,14 @@ evas_object_clip_recalc(Evas_Object *obj) cb = obj->cur.color.b; ca = obj->cur.color.a; if (obj->cur.clipper) { -// this causes problems... hmmm +// this causes problems... hmmm ????? if (obj->cur.clipper->cur.cache.clip.dirty) evas_object_clip_recalc(obj->cur.clipper); // I don't know why this test was here in the first place. As I have // no issue showing up due to this, I keep it and move color out of it. - if (obj->cur.clipper->cur.map_parent == obj->cur.map_parent) +// breaks cliping of mapped images!!! +// if (obj->cur.clipper->cur.map_parent == obj->cur.map_parent) { nx = obj->cur.clipper->cur.cache.clip.x; ny = obj->cur.clipper->cur.cache.clip.y; -- 2.7.4