forked from enlightenment/efl
evas/render - make sure render pre in proxy rendering.
if the some of children are the mapped object in source object tree as well as the the mappped object is invisible, then they wont be render_pre() called. this make sure those render_pre() in proxy rendering.
This commit is contained in:
parent
ef8e2c84ae
commit
b113f555e0
|
@ -312,6 +312,22 @@ _evas_proxy_redraw_set(Evas_Public_Data *e, Evas_Object_Protected_Data *obj,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_evas_proxy_render_pre(Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
Evas_Object_Protected_Data *obj2;
|
||||
|
||||
/* render_pre() won't be called if the children were the invisible
|
||||
mapped object. So here make sure render_pre() for the children. */
|
||||
obj->func->render_pre(obj->object, obj, obj->private_data);
|
||||
|
||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj->object),
|
||||
obj2)
|
||||
{
|
||||
if (obj2->changed) _evas_proxy_render_pre(obj2);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_evas_render_phase1_direct(Evas_Public_Data *e,
|
||||
Eina_Array *active_objects,
|
||||
|
@ -354,9 +370,13 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
|
|||
if (obj->changed)
|
||||
{
|
||||
evas_object_clip_recalc(obj);
|
||||
obj->func->render_pre(eo_obj, obj, obj->private_data);
|
||||
if (obj->proxy->redraw)
|
||||
_evas_render_prev_cur_clip_cache_add(e, obj);
|
||||
{
|
||||
_evas_proxy_render_pre(obj);
|
||||
_evas_render_prev_cur_clip_cache_add(e, obj);
|
||||
}
|
||||
else obj->func->render_pre(eo_obj, obj, obj->private_data);
|
||||
|
||||
if (obj->proxy->proxies)
|
||||
{
|
||||
if (obj->smart.smart && evas_object_smart_changed_get(eo_obj))
|
||||
|
|
Loading…
Reference in New Issue