evas - fix the proxy object to not be clipped by source clipper

This commit is contained in:
ChunEon Park 2013-04-26 14:45:41 +09:00
parent 6890a0e452
commit 39a864d2f7
3 changed files with 29 additions and 10 deletions

View File

@ -1,3 +1,7 @@
2013-04-26 ChunEon Park (Hermet)
* Evas: Fix the proxy object to not be clipped by source clipper.
2013-04-25 Tom Hacohen 2013-04-25 Tom Hacohen
* Evas textblock: Fixed line size calculation when using multiple * Evas textblock: Fixed line size calculation when using multiple

2
NEWS
View File

@ -256,3 +256,5 @@ Fixes:
* Ecore-X: Fix selection parser to not overrun buffer read by using longs on 64bit. * Ecore-X: Fix selection parser to not overrun buffer read by using longs on 64bit.
* Evas: Fix recursive proxy image rendering to just render black * Evas: Fix recursive proxy image rendering to just render black
* Evas textblock: Fixed line size calculation when using multiple fonts. * Evas textblock: Fixed line size calculation when using multiple fonts.
* Evas: Fix the proxy object to not be clipped by source clipper.

View File

@ -969,17 +969,28 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
RD(" { evas_render_mapped(%p, %p, %p, %p, %i, %i, %i, %i)\n", e, obj, context, surface, off_x, off_y, mapped, level); RD(" { evas_render_mapped(%p, %p, %p, %p, %i, %i, %i, %i)\n", e, obj, context, surface, off_x, off_y, mapped, level);
if (mapped) if (mapped)
{ {
if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees) || if (obj->clip.clipees || obj->cur->have_clipees)
(obj->cur->have_clipees))
{ {
RDI(level); if (!proxy_render)
RD(" }\n"); {
return clean_them; if (!evas_object_is_visible(eo_obj, obj))
{
RDI(level);
RD(" }\n");
return clean_them;
}
}
else
{
RDI(level);
RD(" }\n");
return clean_them;
}
} }
} }
else if (!(((evas_object_is_active(eo_obj, obj) && (!obj->clip.clipees) && else if (!(evas_object_is_active(eo_obj, obj) &&
(_evas_render_can_render(eo_obj, obj)))) (!obj->clip.clipees) &&
)) _evas_render_can_render(eo_obj, obj)))
{ {
RDI(level); RDI(level);
RD(" }\n"); RD(" }\n");
@ -1263,7 +1274,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
{ {
RDI(level); RDI(level);
if (obj->cur->clipper) //FIXME: Consider to clip by the proxy clipper.
if (!proxy_render && obj->cur->clipper)
{ {
RD(" clip: %i %i %ix%i [%i %i %ix%i]\n", RD(" clip: %i %i %ix%i [%i %i %ix%i]\n",
obj->cur->cache.clip.x + off_x, obj->cur->cache.clip.x + off_x,
@ -1307,7 +1319,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
} }
else else
{ {
if (obj->cur->clipper) //FIXME: Consider to clip by the proxy clipper.
if (!proxy_render && obj->cur->clipper)
{ {
int x, y, w, h; int x, y, w, h;