diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 9517ef18bd..74082cb687 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1242,8 +1242,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 clipper's 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