summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2013-04-26 14:45:41 +0900
committerChunEon Park <hermet@hermet.pe.kr>2013-04-26 14:45:41 +0900
commit39a864d2f7d38bbb140513706820d83f9e206397 (patch)
tree2dcc7208116506669643c3325ed14391b8568284
parent6890a0e4520d6d289fcb8a00e89aee435b4ac72c (diff)
downloadefl-39a864d2f7d38bbb140513706820d83f9e206397.tar.gz
evas - fix the proxy object to not be clipped by source clipper
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--src/lib/evas/canvas/evas_render.c33
3 files changed, 29 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 99adcd74e8..f09bb59fa3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
* Evas textblock: Fixed line size calculation when using multiple
diff --git a/NEWS b/NEWS
index e721947715..0eb982f7c3 100644
--- a/NEWS
+++ b/NEWS
@@ -256,3 +256,5 @@ Fixes:
* 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 textblock: Fixed line size calculation when using multiple fonts.
+ * Evas: Fix the proxy object to not be clipped by source clipper.
+
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 80f1a79bd1..97083e4943 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -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);
if (mapped)
{
- if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees) ||
- (obj->cur->have_clipees))
+ if (obj->clip.clipees || obj->cur->have_clipees)
{
- RDI(level);
- RD(" }\n");
- return clean_them;
+ if (!proxy_render)
+ {
+ 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) &&
- (_evas_render_can_render(eo_obj, obj))))
- ))
+ else if (!(evas_object_is_active(eo_obj, obj) &&
+ (!obj->clip.clipees) &&
+ _evas_render_can_render(eo_obj, obj)))
{
RDI(level);
RD(" }\n");
@@ -1263,7 +1274,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
{
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",
obj->cur->cache.clip.x + off_x,
@@ -1307,7 +1319,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
}
else
{
- if (obj->cur->clipper)
+ //FIXME: Consider to clip by the proxy clipper.
+ if (!proxy_render && obj->cur->clipper)
{
int x, y, w, h;