forked from enlightenment/efl
evas - update map smart members when really it needs to render.
This commit is contained in:
parent
1953f10b18
commit
3ba5135135
|
@ -1,3 +1,7 @@
|
||||||
|
2013-05-06 ChunEon Park (Hermet)
|
||||||
|
|
||||||
|
* Evas: update the map smart members really when it needs to render.
|
||||||
|
|
||||||
2013-05-05 Jiyoun Park (jypark)
|
2013-05-05 Jiyoun Park (jypark)
|
||||||
|
|
||||||
* Ecore_Input_Evas: Fix ecore_input_evas didn't check the device id of mouse event
|
* Ecore_Input_Evas: Fix ecore_input_evas didn't check the device id of mouse event
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -157,6 +157,7 @@ Improvements:
|
||||||
* Evas textblock : Added split cursor for BiDi text
|
* Evas textblock : Added split cursor for BiDi text
|
||||||
* Evas works around MESA/intel xorg bug where alpha channel of non-argb windows is not filled in with 0xff.
|
* Evas works around MESA/intel xorg bug where alpha channel of non-argb windows is not filled in with 0xff.
|
||||||
* edje entry: remove duplicated ecore_imf_context_reset in adjusting the selection
|
* edje entry: remove duplicated ecore_imf_context_reset in adjusting the selection
|
||||||
|
* Evas: update the map smart members really when it needs to render.
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
* Fix a memory leak in ecore_con_dns when using ecore_con_server_connect
|
* Fix a memory leak in ecore_con_dns when using ecore_con_server_connect
|
||||||
|
|
|
@ -975,6 +975,30 @@ _evas_render_can_use_overlay(Evas_Public_Data *e, Evas_Object *eo_obj)
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Eina_Bool
|
||||||
|
_smart_members_changed_check(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
||||||
|
{
|
||||||
|
Evas_Object_Protected_Data *o2;
|
||||||
|
Eina_Bool changed = EINA_FALSE;
|
||||||
|
|
||||||
|
if (!evas_object_is_visible(eo_obj, obj) &&
|
||||||
|
!evas_object_was_visible(eo_obj, obj))
|
||||||
|
return EINA_FALSE;
|
||||||
|
|
||||||
|
if (!obj->smart.smart) return EINA_TRUE;
|
||||||
|
if (obj->changed_color) return EINA_TRUE;
|
||||||
|
if ((obj->changed_pchange) && (obj->changed_map)) return EINA_TRUE;
|
||||||
|
|
||||||
|
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
|
||||||
|
{
|
||||||
|
if (!o2->changed) continue;
|
||||||
|
changed |= _smart_members_changed_check(o2->object, o2);
|
||||||
|
if (changed) return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return changed;
|
||||||
|
}
|
||||||
|
|
||||||
Eina_Bool
|
Eina_Bool
|
||||||
evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
||||||
Evas_Object_Protected_Data *obj, void *context,
|
Evas_Object_Protected_Data *obj, void *context,
|
||||||
|
@ -1099,22 +1123,14 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
||||||
}
|
}
|
||||||
if (obj->is_smart)
|
if (obj->is_smart)
|
||||||
{
|
{
|
||||||
Evas_Object *eo_o2;
|
|
||||||
Evas_Object_Protected_Data *o2;
|
Evas_Object_Protected_Data *o2;
|
||||||
|
|
||||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj), o2)
|
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(eo_obj),
|
||||||
|
o2)
|
||||||
{
|
{
|
||||||
eo_o2 = o2->object;
|
if (!o2->changed) continue;
|
||||||
if (!evas_object_is_visible(eo_o2, o2) &&
|
changed = _smart_members_changed_check(o2->object, o2);
|
||||||
!evas_object_was_visible(eo_o2, o2))
|
if (changed) break;
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (o2->changed)
|
|
||||||
{
|
|
||||||
changed = EINA_TRUE;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (obj->changed_color) changed = EINA_TRUE;
|
if (obj->changed_color) changed = EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue