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: https://phab.enlightenment.org/D12136
This commit is contained in:
Shinwoo Kim 2020-09-09 12:14:48 +01:00 committed by Carsten Haitzler (Rasterman)
parent 1fa8409b97
commit 7b7f69e09f
1 changed files with 1 additions and 1 deletions

View File

@ -154,7 +154,7 @@ void efl_canvas_vg_container_blend_buffer_clear(Efl_VG *o
static inline void
efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd)
{
if (!vd || vd->changed) return;
if (!vd || (vd->changed && vd->obj->changed)) return;
vd->changed = EINA_TRUE;
evas_object_change(vd->obj->object, vd->obj);
}