forked from enlightenment/efl
parent
997acfa3a5
commit
197fa433cb
|
@ -796,14 +796,6 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
|
||||||
obj->cur.geometry.y + off_y2,
|
obj->cur.geometry.y + off_y2,
|
||||||
obj->cur.geometry.w,
|
obj->cur.geometry.w,
|
||||||
obj->cur.geometry.h);
|
obj->cur.geometry.h);
|
||||||
if (!obj->cur.map)
|
|
||||||
{
|
|
||||||
RECTS_CLIP_TO_RECT(x, y, w, h,
|
|
||||||
obj->cur.cache.clip.x + off_x2,
|
|
||||||
obj->cur.cache.clip.y + off_y2,
|
|
||||||
obj->cur.cache.clip.w,
|
|
||||||
obj->cur.cache.clip.h);
|
|
||||||
}
|
|
||||||
e->engine.func->context_clip_set(e->engine.data.output,
|
e->engine.func->context_clip_set(e->engine.data.output,
|
||||||
ctx, x, y, w, h);
|
ctx, x, y, w, h);
|
||||||
obj->func->render(obj, e->engine.data.output, ctx,
|
obj->func->render(obj, e->engine.data.output, ctx,
|
||||||
|
@ -824,25 +816,49 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
|
||||||
}
|
}
|
||||||
e->engine.func->context_clip_unset(e->engine.data.output,
|
e->engine.func->context_clip_unset(e->engine.data.output,
|
||||||
e->engine.data.context);
|
e->engine.data.context);
|
||||||
if ((obj->cur.map->surface) && (obj->smart.smart))
|
if (obj->cur.map->surface)
|
||||||
{
|
{
|
||||||
if (obj->cur.clipper)
|
if (obj->smart.smart)
|
||||||
{
|
{
|
||||||
int x, y, w, h;
|
if (obj->cur.clipper)
|
||||||
Evas_Object *tobj;
|
{
|
||||||
|
int x, y, w, h;
|
||||||
obj->cur.cache.clip.dirty = 1;
|
Evas_Object *tobj;
|
||||||
tobj = obj->cur.map_parent;
|
|
||||||
obj->cur.map_parent = obj->cur.clipper->cur.map_parent;
|
obj->cur.cache.clip.dirty = 1;
|
||||||
evas_object_clip_recalc(obj);
|
tobj = obj->cur.map_parent;
|
||||||
obj->cur.map_parent = tobj;
|
obj->cur.map_parent = obj->cur.clipper->cur.map_parent;
|
||||||
x = obj->cur.cache.clip.x;
|
evas_object_clip_recalc(obj);
|
||||||
y = obj->cur.cache.clip.y;
|
obj->cur.map_parent = tobj;
|
||||||
w = obj->cur.cache.clip.w;
|
x = obj->cur.cache.clip.x;
|
||||||
h = obj->cur.cache.clip.h;
|
y = obj->cur.cache.clip.y;
|
||||||
e->engine.func->context_clip_set(e->engine.data.output,
|
w = obj->cur.cache.clip.w;
|
||||||
e->engine.data.context,
|
h = obj->cur.cache.clip.h;
|
||||||
x + off_x, y + off_y, w, h);
|
e->engine.func->context_clip_set(e->engine.data.output,
|
||||||
|
e->engine.data.context,
|
||||||
|
x + off_x, y + off_y, w, h);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (obj->cur.clipper)
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
|
||||||
|
evas_object_clip_recalc(obj);
|
||||||
|
x = obj->cur.cache.clip.x;
|
||||||
|
y = obj->cur.cache.clip.y;
|
||||||
|
w = obj->cur.cache.clip.w;
|
||||||
|
h = obj->cur.cache.clip.h;
|
||||||
|
RECTS_CLIP_TO_RECT(x, y, w, h,
|
||||||
|
obj->cur.clipper->cur.cache.clip.x + off_x,
|
||||||
|
obj->cur.clipper->cur.cache.clip.y + off_y,
|
||||||
|
obj->cur.clipper->cur.cache.clip.w,
|
||||||
|
obj->cur.clipper->cur.cache.clip.h);
|
||||||
|
e->engine.func->context_clip_set(e->engine.data.output,
|
||||||
|
e->engine.data.context,
|
||||||
|
x + off_x, y + off_y, w, h);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (obj->cur.cache.clip.visible)
|
if (obj->cur.cache.clip.visible)
|
||||||
|
|
Loading…
Reference in New Issue