obj->changed_color = EINA_FALSE;
obj->changed_pchange = EINA_FALSE;
obj->changed_src_visible = EINA_FALSE;
+ obj->need_surface_clear = EINA_FALSE;
}
void
movch = EINA_TRUE;
obj->changed_move = EINA_FALSE;
}
+ else obj->need_surface_clear = EINA_TRUE;
if (obj->changed) return;
{
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
Evas_Object_Protected_Data *o2;
+ Eina_Bool has_map = EINA_FALSE;
if (!evas_object_is_visible(eo_obj, obj) &&
!evas_object_was_visible(eo_obj, obj))
if (!obj->clip.clipees)
{
- if (obj->changed && !obj->is_smart) return EINA_TRUE;
- if (_evas_render_has_map(eo_obj, obj))
+ has_map = _evas_render_has_map(eo_obj, obj);
+ if (obj->changed && !obj->is_smart && !has_map) return EINA_TRUE;
+
+ if (has_map)
{
- if (((obj->changed_pchange) && (obj->changed_map)) ||
- (obj->changed_color)) return EINA_TRUE;
+ if (obj->need_surface_clear || ((obj->changed_pchange) && (obj->changed_map)))
+ return EINA_TRUE;
}
}
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
- if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE;
+ if (evas_object_smart_changed_get(o2->object)) return EINA_TRUE;
return EINA_FALSE;
}
Eina_Bool changed_map : 1;
Eina_Bool changed_pchange : 1;
Eina_Bool changed_src_visible : 1;
+ Eina_Bool need_surface_clear : 1;
Eina_Bool del_ref : 1;
Eina_Bool is_frame : 1;