hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f257401a4f7a3c6ee922bbf7cc311793b5345b1d
commit f257401a4f7a3c6ee922bbf7cc311793b5345b1d Author: Hermet Park <[email protected]> Date: Thu Mar 12 20:39:12 2020 +0900 canvas proxy: fix a missing case that proxy not updated properly. Very complex to say, if its source object is remained as chaged state in pending object in rendering stage, the proxy object could miss to update in the next frame because source object won't be changed again in evas_object_change(). Thus we need to double-check if the proxy missed update or not just in the rendering. Not clean but this is a compromised solution to not be burden for finding/checking proxies in object trees every time. @fix --- src/lib/evas/canvas/evas_render.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 3d478a429b..53179ec5bc 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -379,6 +379,9 @@ _evas_proxy_redraw_set(Evas_Public_Data *e, Evas_Object_Protected_Data *obj, if (render) { + /* Not good... but make it sure if the proxies have missed at update + if its sources are remained changed as pending objects in the prev frame. */ + evas_object_change(eo_proxy, proxy); proxy->func->render_pre(eo_proxy, proxy, proxy->private_data); _evas_render_prev_cur_clip_cache_add(e, proxy); } --
