commit ed444b698b63e0086812062abb9e3065360eb0b2 91/76391/2
authorHermet Park <hermet@hermet.pe.kr>
Thu, 23 Jun 2016 15:53:05 +0000 (00:53 +0900)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Fri, 24 Jun 2016 07:00:41 +0000 (00:00 -0700)
Author: Hermet Park <hermet@hermet.pe.kr>
Date:   Fri Jun 24 00:48:34 2016 +0900

    evas canvas: fix broken proxy clipping.

    Origin of clipper's clipper won't be transformed to derivative space.
    So it needs to transform the coordinate additionally.

Change-Id: I12e439d0a5ea6cf0eeebda1ba4791f6ed6a0dc99

src/lib/evas/canvas/evas_render.c

index a314298..52aa2e8 100755 (executable)
@@ -1238,8 +1238,11 @@ _proxy_context_clip(Evas_Public_Data *evas, void *ctx, Evas_Proxy_Render_Data *p
    /* stop if we found the source object's clipper */
    if (clipper == proxy_render_data->src_obj->cur->clipper) return EINA_TRUE;
 
-   /* recurse to the clipper itself */
-   return _proxy_context_clip(evas, ctx, proxy_render_data, clipper, off_x, off_y);
+   /* recurse to the clipper itself.
+    * origin of clippers clipper won't be transformed to derivative space. */
+   return _proxy_context_clip(evas, ctx, proxy_render_data, clipper,
+                              (off_x - proxy_render_data->src_obj->cur->geometry.x),
+                              (off_y - proxy_render_data->src_obj->cur->geometry.y));
 }
 
 static void