From f506f65141cc7e46edf3aad938852aea26e07687 Mon Sep 17 00:00:00 2001 From: "jiin.moon" Date: Thu, 2 Mar 2017 15:53:03 +0900 Subject: [PATCH] evas: Fix double clipping issue with map If object's parent has map and object also has map, the evas clip would be applied twice. The context already applied clip area when drawing on map_surface. So don't need more clipping when drawing map_image. Also, make sure to apply the framespace clip when drawing the map surface onto the final canvas. Thanks @jiin.moon for the initial patch (see D4694). @fix Signed-off-by: Jean-Philippe Andre --- src/lib/evas/canvas/evas_render.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 43085aaf9a..00c2f6b90f 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2031,7 +2031,15 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, if (obj->cur->cache.clip.visible || !proxy_src_clip) { - ENFN->context_clip_clip(ENDT, ctx, ecx, ecy, ecw, ech); + if (!mapped) + { + ENFN->context_clip_clip(ENDT, ctx, ecx, ecy, ecw, ech); + if (!_is_obj_in_framespace(obj, evas)) + { + _evas_render_framespace_context_clip_clip + (evas, ctx, off_x - evas->framespace.x, off_y - evas->framespace.y); + } + } ENFN->context_multiplier_unset(ENDT, ctx); ENFN->context_render_op_set(ENDT, ctx, obj->cur->render_op); #ifdef REND_DBG