diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-07-04 16:06:04 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2016-07-04 16:09:39 +0900 |
commit | 07ea964e9f5ac090184b96aa5e85f2489c87fcd1 (patch) | |
tree | 72c05ae9744eaaaa17dc14a7a4dd221d5e7a3cce | |
parent | 3671dd64c6cbf6a8ce3f20c1be143805cf3c9e49 (diff) | |
download | efl-07ea964e9f5ac090184b96aa5e85f2489c87fcd1.tar.gz |
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.c | 7 |
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, RD(level, "}\n"); return clean_them; } + else if (proxy_render_data && (surface != obj->proxy->surface) && + obj->proxy->src_invisible) + { + RD(level, " src_invisible + not proxy surface (recursive proxies)\n"); + RD(level, "}\n"); + return clean_them; + } } } else if (!evas_object_is_proxy_visible(eo_obj, obj) || |