From 2e339c7f654c3bd81003dc4a7550f4776b875c3c Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 12 Mar 2020 20:39:12 +0900 Subject: [PATCH] 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 e9a1b33..b7aab1c 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -384,6 +384,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); } -- 2.7.4