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 <jp.andre@samsung.com>
This commit is contained in:
jiin.moon 2017-03-02 15:53:03 +09:00 committed by Jean-Philippe Andre
parent e6a1e456cb
commit f506f65141
1 changed files with 9 additions and 1 deletions

View File

@ -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