summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorShinwoo Kim <cinoo.kim@samsung.com>2020-09-17 10:40:24 +0900
committerHermet Park <chuneon.park@samsung.com>2020-09-17 10:40:25 +0900
commite5958965e80724b335fc8b0470d46586e7f29051 (patch)
treee595ee8c6a9a405ca63fdd2814757c85fb9b8679 /src/lib
parent3bd066c7dbffc2655501dea0b8d44d567ac1113b (diff)
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
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/evas/canvas/efl_canvas_vg_node.c10
1 files changed, 9 insertions, 1 deletions
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 = {
19static void 19static void
20_node_change(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd) 20_node_change(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd)
21{ 21{
22 if (!nd || nd->flags != EFL_GFX_CHANGE_FLAG_NONE) return; 22 if (!nd) return;
23 if (nd->flags != EFL_GFX_CHANGE_FLAG_NONE)
24 {
25 if ((nd->vd && nd->vd->obj) &&
26 (!nd->vd->obj || !nd->vd->obj->changed))
27 efl_canvas_vg_object_change(nd->vd);
28
29 return;
30 }
23 nd->flags = EFL_GFX_CHANGE_FLAG_ALL; 31 nd->flags = EFL_GFX_CHANGE_FLAG_ALL;
24 32
25 Eo *p = obj; 33 Eo *p = obj;