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);
           }

-- 


Reply via email to