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;
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"
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;
}
}
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
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 { \