summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-07-04 16:06:04 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-07-04 16:09:39 +0900
commit07ea964e9f5ac090184b96aa5e85f2489c87fcd1 (patch)
tree72c05ae9744eaaaa17dc14a7a4dd221d5e7a3cce
parent3671dd64c6cbf6a8ce3f20c1be143805cf3c9e49 (diff)
evas: Fix rare issue with recursive proxy src invisible
Scenario: smart { text proxy -> text, src_invisible } proxy -> smart What we should see: smart { (blank) proxy -> text } proxy -> { (blank) proxy -> text } What we saw: smart { (blank) proxy -> text } proxy -> { text proxy -> text } Solution: Check in evas render, when we're inside a proxy render, and the proxy src_invisible flag is on (evas_object_source_visible_set(0), that we're rendering the object itself to its proxy surface. If not, it means we're rendering another proxy surface, ie. a parent smart object's proxy surface. Still loving evas render. Fixes T4006. @fix
-rw-r--r--src/lib/evas/canvas/evas_render.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index e85e402cac..a429a68859 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1388,6 +1388,13 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj,
1388 RD(level, "}\n"); 1388 RD(level, "}\n");
1389 return clean_them; 1389 return clean_them;
1390 } 1390 }
1391 else if (proxy_render_data && (surface != obj->proxy->surface) &&
1392 obj->proxy->src_invisible)
1393 {
1394 RD(level, " src_invisible + not proxy surface (recursive proxies)\n");
1395 RD(level, "}\n");
1396 return clean_them;
1397 }
1391 } 1398 }
1392 } 1399 }
1393 else if (!evas_object_is_proxy_visible(eo_obj, obj) || 1400 else if (!evas_object_is_proxy_visible(eo_obj, obj) ||