forked from enlightenment/efl
evas vg: check vg changed
Summary: It is not able to render even though vg object has a chance to render, because evas_object_smart_changed_get checks only Evas_Object_Protected_Data, when Efl_Canvas_Vg_Object_Data.changed is TRUE. Reviewers: Hermet, jsuya, herb Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12152
This commit is contained in:
parent
f3014132ce
commit
46eca1108c
|
@ -384,6 +384,7 @@ _efl_canvas_vg_object_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Vg_Object_Da
|
|||
obj->func = &object_func;
|
||||
obj->private_data = efl_data_ref(eo_obj, MY_CLASS);
|
||||
obj->type = o_type;
|
||||
obj->is_vg_object = EINA_TRUE;
|
||||
|
||||
/* default root node */
|
||||
pd->obj = obj;
|
||||
|
@ -1163,5 +1164,12 @@ evas_object_vg_fill_mode_get(const Evas_Object *obj)
|
|||
return _efl_ui_canvas_object_vg_fill_mode_to_evas_object_vg_fill_mode(efl_canvas_vg_object_fill_mode_get(obj));
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
evas_object_vg_changed_get(Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
Efl_Canvas_Vg_Object_Data *pd = obj->private_data;
|
||||
return pd->changed;
|
||||
}
|
||||
|
||||
#include "efl_canvas_vg_object.eo.c"
|
||||
#include "efl_canvas_vg_object_eo.legacy.c"
|
||||
|
|
|
@ -1392,7 +1392,10 @@ evas_object_smart_changed_get(Evas_Object_Protected_Data *obj)
|
|||
if (has_map)
|
||||
{
|
||||
if ((obj->need_surface_clear && obj->changed && !obj->is_smart) ||
|
||||
((obj->changed_pchange) && (obj->changed_map)))
|
||||
((obj->changed_pchange) && (obj->changed_map)) ||
|
||||
/* A condition for a rare case which has obj->changed is FALSE,
|
||||
but Efl_Canvas_Vg_Object_Data.changed is TRUE. */
|
||||
(obj->is_vg_object && evas_object_vg_changed_get(obj)))
|
||||
return EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -825,6 +825,7 @@ struct _Evas_Object_Protected_Data
|
|||
Eina_Bool events_filter_enabled : 1;
|
||||
Eina_Bool is_pointer_inside_legacy : 1;
|
||||
Eina_Bool is_filter_object : 1;
|
||||
Eina_Bool is_vg_object : 1;
|
||||
};
|
||||
|
||||
struct _Evas_Data_Node
|
||||
|
@ -1251,6 +1252,7 @@ void evas_call_smarts_calculate(Evas *e);
|
|||
void evas_object_smart_bounding_box_update(Evas_Object_Protected_Data *obj);
|
||||
void evas_object_smart_need_bounding_box_update(Evas_Smart_Data *o, Evas_Object_Protected_Data *obj);
|
||||
Eina_Bool evas_object_smart_changed_get(Evas_Object_Protected_Data *obj);
|
||||
Eina_Bool evas_object_vg_changed_get(Evas_Object_Protected_Data *obj);
|
||||
void evas_object_smart_attach(Evas_Object *eo_obj, Evas_Smart *s);
|
||||
void _evas_post_event_callback_call_real(Evas *e, Evas_Public_Data* e_pd, int min_event_id);
|
||||
#define _evas_post_event_callback_call(e, pd, id) do { \
|
||||
|
|
Loading…
Reference in New Issue