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
Change-Id: I628b3596c282354005ae2a36209460d68bb43c01
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;