forked from enlightenment/efl
evas/proxy - render the children of the proxy's source object when ther visibility is true.
This is not the perfect solution at this moment. This doesn't consider the cached clipper's visibility at all. But at least this would be better than exist works. Should be improved.
This commit is contained in:
parent
55094c9eb0
commit
e2c395f049
|
@ -1074,7 +1074,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
}
|
||||
else
|
||||
{
|
||||
if ((obj->clip.clipees) || (obj->cur->have_clipees))
|
||||
if (!evas_object_is_proxy_visible(eo_obj, obj) ||
|
||||
(obj->clip.clipees) || (obj->cur->have_clipees))
|
||||
{
|
||||
RDI(level);
|
||||
RD(" }\n");
|
||||
|
|
|
@ -150,6 +150,23 @@ evas_object_clippers_is_visible(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Pro
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
evas_object_is_proxy_visible(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
|
||||
{
|
||||
if ((obj->cur->visible) &&
|
||||
//FIXME: Check the cached clipper visible properly.
|
||||
((obj->cur->clipper && obj->cur->clipper->cur->visible) ||
|
||||
(obj->is_smart)) &&
|
||||
((obj->cur->cache.clip.a > 0 && obj->cur->render_op == EVAS_RENDER_BLEND)
|
||||
|| obj->cur->render_op != EVAS_RENDER_BLEND))
|
||||
{
|
||||
if (obj->func->is_visible)
|
||||
return obj->func->is_visible(eo_obj);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
evas_object_is_in_output_rect(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj, int x, int y, int w, int h)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue