Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_clip.c evas_render.c 


Log Message:


fix excess overdraw bug

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_clip.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- evas_clip.c 30 Jul 2005 09:52:53 -0000      1.21
+++ evas_clip.c 2 Nov 2005 04:03:55 -0000       1.22
@@ -176,6 +176,8 @@
      {
        /* unclip */
        obj->cur.clipper->clip.clipees = 
evas_list_remove(obj->cur.clipper->clip.clipees, obj);
+       if (!obj->cur.clipper->clip.clipees) obj->cur.clipper->cur.have_clipees 
= 0;
+       evas_object_change(obj->cur.clipper);
        evas_object_change(obj);
        obj->cur.clipper = NULL;
      }
@@ -191,6 +193,8 @@
      }
    obj->cur.clipper = clip;
    clip->clip.clipees = evas_list_append(clip->clip.clipees, obj);
+   if (clip->clip.clipees) clip->cur.have_clipees = 1;
+   evas_object_change(clip);
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
    evas_object_recalc_clippees(obj);
@@ -278,6 +282,8 @@
          obj->smart.smart->smart_class->clip_unset(obj);
      }
    obj->cur.clipper->clip.clipees = 
evas_list_remove(obj->cur.clipper->clip.clipees, obj);
+   if (!obj->cur.clipper->clip.clipees) obj->cur.clipper->cur.have_clipees = 0;
+   evas_object_change(obj->cur.clipper);
    obj->cur.clipper = NULL;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_render.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- evas_render.c       31 Oct 2005 07:06:52 -0000      1.14
+++ evas_render.c       2 Nov 2005 04:03:55 -0000       1.15
@@ -101,9 +101,11 @@
          }
        else
          {
-            if ((is_active) && (obj->restack) && (!obj->clip.clipees))
+            if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
+                ((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) || 
+                 (evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
               *restack_objects = evas_list_append(*restack_objects, obj);
-            else if (is_active)
+            else if ((is_active) && (!obj->clip.clipees))
               obj->func->render_pre(obj);
          }
      }




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to