fix clip-out issue after making mapped objs opque fix was in.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 26 Oct 2011 13:33:25 +0000 (13:33 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 26 Oct 2011 13:33:25 +0000 (13:33 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@64413 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_map.c
src/lib/canvas/evas_object_image.c
src/lib/include/evas_inline.x

index 3aab66f..fca8b3a 100644 (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;
index fefc177..04b706b 100644 (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;
index a9787ef..1fc4fc9 100644 (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;