path: root/src/lib
diff options
authorShinwoo Kim <>2020-09-09 12:14:48 +0100
committerCarsten Haitzler (Rasterman) <>2020-09-09 12:14:48 +0100
commit7b7f69e09fb198a881a931bd79ac61b5260b1bb0 (patch)
tree171837c4cd7389a44903d9d7c43f64648d6e31a4 /src/lib
parent1fa8409b97ee4ee4c2089b5d4cf7511f0385de62 (diff)
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:
Diffstat (limited to 'src/lib')
1 files changed, 1 insertions, 1 deletions
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
154static inline void 154static inline void
155efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd) 155efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd)
156{ 156{
157 if (!vd || vd->changed) return; 157 if (!vd || (vd->changed && vd->obj->changed)) return;
158 vd->changed = EINA_TRUE; 158 vd->changed = EINA_TRUE;
159 evas_object_change(vd->obj->object, vd->obj); 159 evas_object_change(vd->obj->object, vd->obj);
160} 160}