summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <chuneon.park@samsung.com>2020-03-12 20:39:12 +0900
committerHermet Park <chuneon.park@samsung.com>2020-03-12 20:44:07 +0900
commitf257401a4f7a3c6ee922bbf7cc311793b5345b1d (patch)
tree6a14ef2f9d319037bba270832419d09b7085f5d3
parent06e9af1b0cee7194bf6dc848b195caed1295847e (diff)
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
-rw-r--r--src/lib/evas/canvas/evas_render.c3
1 files changed, 3 insertions, 0 deletions
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,
379 379
380 if (render) 380 if (render)
381 { 381 {
382 /* Not good... but make it sure if the proxies have missed at update
383 if its sources are remained changed as pending objects in the prev frame. */
384 evas_object_change(eo_proxy, proxy);
382 proxy->func->render_pre(eo_proxy, proxy, proxy->private_data); 385 proxy->func->render_pre(eo_proxy, proxy, proxy->private_data);
383 _evas_render_prev_cur_clip_cache_add(e, proxy); 386 _evas_render_prev_cur_clip_cache_add(e, proxy);
384 } 387 }