* evas: This patch reintroduce the use of cache for clip. I don't know
authorcedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 10 Apr 2009 15:14:40 +0000 (15:14 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 10 Apr 2009 15:14:40 +0000 (15:14 +0000)
why it was disable the first time, so it could lead to some graphic bug.
Please report any strange behaviour.

*WARNING* This could really introduce some visual bug.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@39940 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_object_main.c
src/lib/include/evas_inline.x

index 0bfdb2d..4a29994 100644 (file)
@@ -1202,6 +1202,7 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
    obj->cur.color.r = r;
    obj->cur.color.g = g;
    obj->cur.color.b = b;
+   evas_object_clip_dirty(obj);
    if ((obj->cur.color.a == 0) && (a == 0)) return;
    obj->cur.color.a = a;
    evas_object_change(obj);
index 1a498f3..410567f 100644 (file)
@@ -172,7 +172,8 @@ evas_object_clip_recalc(Evas_Object *obj)
    int nx, ny, nw, nh, nvis, nr, ng, nb, na;
 
    if (obj->layer->evas->events_frozen > 0) return;
-//   if (!obj->cur.clipper->cur.cache.clip.dirty) return;
+   if (!(obj->cur.clipper == NULL || obj->cur.clipper->cur.cache.clip.dirty)
+       && !obj->cur.cache.clip.dirty) return;
    evas_object_coords_recalc(obj);
    cx = obj->cur.geometry.x; cy = obj->cur.geometry.y;
    cw = obj->cur.geometry.w; ch = obj->cur.geometry.h;
@@ -185,7 +186,7 @@ evas_object_clip_recalc(Evas_Object *obj)
    if (obj->cur.clipper)
      {
 // this causes problems... hmmm
-//     if (obj->cur.clipper->cur.cache.clip.dirty)
+       if (obj->cur.clipper->cur.cache.clip.dirty)
          evas_object_clip_recalc(obj->cur.clipper);
        nx = obj->cur.clipper->cur.cache.clip.x;
        ny = obj->cur.clipper->cur.cache.clip.y;