forked from enlightenment/efl
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
This commit is contained in:
parent
3bd066c7db
commit
e5958965e8
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue