raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7b7f69e09fb198a881a931bd79ac61b5260b1bb0

commit 7b7f69e09fb198a881a931bd79ac61b5260b1bb0
Author: Shinwoo Kim <cinoo....@samsung.com>
Date:   Wed Sep 9 12:14:48 2020 +0100

    evas vg: check object changed as well
    
    Summary:
    evas cannot render vg object if Efl_Canvas_Vg_Object_Data.changed is ture
    and Evas_Object_Protected_Data.changed is false, when vg object marks itself
    as changed.
    
    Above case is possible depending on the draw area which is calculated by
    eng_output_redraws_next_update_get. If this function returns NULL,
    the vg object render function is not called, and vd->changed remains true.
    Only vd->obj->changed is set to false by vas_object_change_reset.
    
    Reviewers: Hermet, jsuya, herb, raster
    
    Reviewed By: raster
    
    Subscribers: raster, cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D12136
---
 src/lib/evas/canvas/evas_vg_private.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_vg_private.h 
b/src/lib/evas/canvas/evas_vg_private.h
index aba4e9d27b..2431722b46 100644
--- a/src/lib/evas/canvas/evas_vg_private.h
+++ b/src/lib/evas/canvas/evas_vg_private.h
@@ -154,7 +154,7 @@ void                        
efl_canvas_vg_container_blend_buffer_clear(Efl_VG *o
 static inline void
 efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd)
 {
-   if (!vd || vd->changed) return;
+   if (!vd || (vd->changed && vd->obj->changed)) return;
    vd->changed = EINA_TRUE;
    evas_object_change(vd->obj->object, vd->obj);
 }

-- 


Reply via email to