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