hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e5958965e80724b335fc8b0470d46586e7f29051
commit e5958965e80724b335fc8b0470d46586e7f29051 Author: Shinwoo Kim <cinoo....@samsung.com> Date: Thu Sep 17 10:40:24 2020 +0900 evas vg: check object changed as well 2 Summary: evas cannot render vg object if Efl_Canvas_Vg_Node_Data flag is not EFL_GFX_CHANGE_FLAG_NONE and Evas_Object_Protected_Data.changed is FALSE, when vg object marks its node as changed. Above case could be possible if vg object render_pre is not called, and only nd->vd->obj->changed is set to false by evas_object_change_reset. Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12142 --- src/lib/evas/canvas/efl_canvas_vg_node.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_canvas_vg_node.c b/src/lib/evas/canvas/efl_canvas_vg_node.c index a076136815..f2bead512f 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_node.c +++ b/src/lib/evas/canvas/efl_canvas_vg_node.c @@ -19,7 +19,15 @@ static const Efl_Canvas_Vg_Interpolation interpolation_identity = { static void _node_change(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd) { - if (!nd || nd->flags != EFL_GFX_CHANGE_FLAG_NONE) return; + if (!nd) return; + if (nd->flags != EFL_GFX_CHANGE_FLAG_NONE) + { + if ((nd->vd && nd->vd->obj) && + (!nd->vd->obj || !nd->vd->obj->changed)) + efl_canvas_vg_object_change(nd->vd); + + return; + } nd->flags = EFL_GFX_CHANGE_FLAG_ALL; Eo *p = obj; --