jpeg pushed a commit to branch master.

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

commit d3d655bedf0496826cb0325d1e9d865185c52bbf
Author: Jean-Philippe Andre <[email protected]>
Date:   Mon Jun 27 20:36:24 2016 +0900

    evas: Fix bad clipping with proxy
    
    evas-images2 example was broken due to excessive clipping.
    This is one more issue with the cached clip geometry.
    
    By default proxy_src_clip is true. The doc (that I wrote)
    mentions that it means both objects (image proxy & source)
    share the same clipper. So, this does not mean that the proxy
    is clipped to the geometry of the source (this can be useful
    in some cases, when replacing an object with a proxy to apply
    some kind of effect on it... but this could be rare).
    
    Thanks Amitesh for the report.
    
    @fix
---
 src/lib/evas/canvas/evas_object_image.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 2bfd1fa..4bd1257 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1841,13 +1841,13 @@ _evas_image_render(Eo *eo_obj, 
Evas_Object_Protected_Data *obj,
         uvw = source->cur->geometry.w;
         uvh = source->cur->geometry.h;
         /* check source_clip since we skip proxy_subrender here */
-        if (o->proxy_src_clip)
+        if (o->proxy_src_clip && source->cur->clipper)
           {
              ENFN->context_clip_clip(ENDT, context,
-                                     source->cur->cache.clip.x + x,
-                                     source->cur->cache.clip.y + y,
-                                     source->cur->cache.clip.w,
-                                     source->cur->cache.clip.h);
+                                     source->cur->clipper->cur->cache.clip.x + 
x,
+                                     source->cur->clipper->cur->cache.clip.y + 
y,
+                                     source->cur->clipper->cur->cache.clip.w,
+                                     source->cur->clipper->cur->cache.clip.h);
           }
      }
    else

-- 


Reply via email to