raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b1d41005081443ed5253a50abe57d3f719e209e7

commit b1d41005081443ed5253a50abe57d3f719e209e7
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Wed Apr 16 15:22:08 2014 +0900

    evas rects - missing update rect del if rect solid && not changed
    
    small improvement
---
 src/lib/evas/canvas/evas_object_rectangle.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_rectangle.c 
b/src/lib/evas/canvas/evas_object_rectangle.c
index dd84f45..192895f 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -242,16 +242,29 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
    /* it obviously didn't change - add a NO obscure - this "unupdates"  this */
    /* area so if there were updates for it they get wiped. don't do it if we */
    /* arent fully opaque and we are visible */
- /*
    if (evas_object_is_visible(eo_obj) &&
        evas_object_is_opaque(eo_obj) &&
        (!obj->clip.clipees))
-     
obj->layer->evas->engine.func->output_redraws_rect_del(obj->layer->evas->engine.data.output,
-                                                           
obj->cur->cache.clip.x,
-                                                           
obj->cur->cache.clip.y,
-                                                           
obj->cur->cache.clip.w,
-                                                           
obj->cur->cache.clip.h);
-  */
+     {
+        Evas_Coord x, y, w, h;
+        
+        x = obj->cur->cache.clip.x;
+        y = obj->cur->cache.clip.y;
+        w = obj->cur->cache.clip.w;
+        h = obj->cur->cache.clip.h;
+        if (obj->cur->clipper)
+          {
+             RECTS_CLIP_TO_RECT(x, y, w, h,
+                                obj->cur->clipper->cur->cache.clip.x,
+                                obj->cur->clipper->cur->cache.clip.y,
+                                obj->cur->clipper->cur->cache.clip.w,
+                                obj->cur->clipper->cur->cache.clip.h);
+          }
+        e->engine.func->output_redraws_rect_del(e->engine.data.output,
+                                                x + e->framespace.x,
+                                                y + e->framespace.y,
+                                                w, h);
+     }
    done:
    evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, 
eo_obj, is_v, was_v);
 }

-- 


Reply via email to