fix clip-out issue after making mapped objs opque fix was in.

SVN revision: 64413
This commit is contained in:
Carsten Haitzler 2011-10-26 13:33:25 +00:00
parent e92b545bee
commit ee86abe1ea
3 changed files with 14 additions and 6 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;