diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c index 8f7887d0f0..039e9ebe6c 100644 --- a/legacy/evas/src/lib/canvas/evas_render.c +++ b/legacy/evas/src/lib/canvas/evas_render.c @@ -678,8 +678,11 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, } else { - changed = obj->changed; - obj->changed = 0; + if (obj->changed) + { + changed = 1; + obj->changed = 0; + } } // clear surface before re-render @@ -724,14 +727,14 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, else { int x = 0, y = 0, w = 0, h = 0; - + w = obj->cur.map->surface_w; h = obj->cur.map->surface_h; RECTS_CLIP_TO_RECT(x, y, w, h, - obj->cur.cache.clip.x + off_x, - obj->cur.cache.clip.y + off_y, - obj->cur.cache.clip.w, - obj->cur.cache.clip.h); + obj->cur.geometry.x + off_x, + obj->cur.geometry.y + off_y, + obj->cur.geometry.w, + obj->cur.geometry.h); e->engine.func->context_clip_set(e->engine.data.output, ctx, x, y, w, h); obj->func->render(obj, e->engine.data.output, ctx, diff --git a/legacy/evas/src/lib/engines/common/evas_map_image.c b/legacy/evas/src/lib/engines/common/evas_map_image.c index 86d4354059..3112a839e7 100644 --- a/legacy/evas/src/lib/engines/common/evas_map_image.c +++ b/legacy/evas/src/lib/engines/common/evas_map_image.c @@ -362,7 +362,7 @@ evas_common_map4_rgba(RGBA_Image *src, RGBA_Image *dst, #ifdef BUILD_MMX evas_common_cpu_can_do(&mmx, &sse, &sse2); #endif - if (!dc->cutout.rects) + if ((!dc->cutout.rects) && (!dc->clip.use)) { #ifdef BUILD_MMX if (mmx)