forked from enlightenment/efl
evas: Fix not to clean and re-render if position of object enabled map is changed
Summary: Fix not to clean and re-render if the position of an object enabled map is changed. Reviewers: raster, cedric, Hermet Reviewed By: Hermet Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D1220
This commit is contained in:
parent
c12875ccd3
commit
b3d900e748
|
@ -100,6 +100,7 @@ evas_object_change_reset(Evas_Object *eo_obj)
|
||||||
obj->changed_color = EINA_FALSE;
|
obj->changed_color = EINA_FALSE;
|
||||||
obj->changed_pchange = EINA_FALSE;
|
obj->changed_pchange = EINA_FALSE;
|
||||||
obj->changed_src_visible = EINA_FALSE;
|
obj->changed_src_visible = EINA_FALSE;
|
||||||
|
obj->need_surface_clear = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -223,6 +224,7 @@ evas_object_change(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
||||||
movch = EINA_TRUE;
|
movch = EINA_TRUE;
|
||||||
obj->changed_move = EINA_FALSE;
|
obj->changed_move = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
else obj->need_surface_clear = EINA_TRUE;
|
||||||
|
|
||||||
if (obj->changed) return;
|
if (obj->changed) return;
|
||||||
|
|
||||||
|
|
|
@ -973,6 +973,7 @@ evas_object_smart_changed_get(Evas_Object *eo_obj)
|
||||||
{
|
{
|
||||||
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
|
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
|
||||||
Evas_Object_Protected_Data *o2;
|
Evas_Object_Protected_Data *o2;
|
||||||
|
Eina_Bool has_map = EINA_FALSE;
|
||||||
|
|
||||||
if (!evas_object_is_visible(eo_obj, obj) &&
|
if (!evas_object_is_visible(eo_obj, obj) &&
|
||||||
!evas_object_was_visible(eo_obj, obj))
|
!evas_object_was_visible(eo_obj, obj))
|
||||||
|
@ -980,11 +981,13 @@ evas_object_smart_changed_get(Evas_Object *eo_obj)
|
||||||
|
|
||||||
if (!obj->clip.clipees)
|
if (!obj->clip.clipees)
|
||||||
{
|
{
|
||||||
if (obj->changed && !obj->is_smart) return EINA_TRUE;
|
has_map = _evas_render_has_map(eo_obj, obj);
|
||||||
if (_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)) ||
|
if (obj->need_surface_clear || ((obj->changed_pchange) && (obj->changed_map)))
|
||||||
(obj->changed_color)) return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -920,6 +920,7 @@ struct _Evas_Object_Protected_Data
|
||||||
Eina_Bool changed_map : 1;
|
Eina_Bool changed_map : 1;
|
||||||
Eina_Bool changed_pchange : 1;
|
Eina_Bool changed_pchange : 1;
|
||||||
Eina_Bool changed_src_visible : 1;
|
Eina_Bool changed_src_visible : 1;
|
||||||
|
Eina_Bool need_surface_clear : 1;
|
||||||
Eina_Bool del_ref : 1;
|
Eina_Bool del_ref : 1;
|
||||||
|
|
||||||
Eina_Bool is_frame : 1;
|
Eina_Bool is_frame : 1;
|
||||||
|
|
Loading…
Reference in New Issue