forked from enlightenment/efl
0x0 smarts will no be rendered again - well children will be... but its still
bad form to do this. oddly - the desktop panning in e does this. need to check. SVN revision: 43799
This commit is contained in:
parent
d3135f8f27
commit
8ce36a26c9
|
@ -126,8 +126,7 @@ static Eina_Bool
|
|||
_evas_render_has_map(Evas_Object *obj)
|
||||
{
|
||||
return ((!((obj->func->can_map) && (obj->func->can_map(obj)))) &&
|
||||
((obj->cur.map) && (obj->cur.map->count == 4) &&
|
||||
(obj->cur.usemap)));
|
||||
((obj->cur.map) && (obj->cur.usemap)));
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
@ -258,6 +257,14 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj,
|
|||
RD(" [--- PROCESS [%p] '%s' active = %i, del = %i | %i %i %ix%i\n", obj, obj->type, is_active, obj->delete_me, obj->cur.geometry.x, obj->cur.geometry.y, obj->cur.geometry.w, obj->cur.geometry.h);
|
||||
if ((is_active) || (obj->delete_me != 0))
|
||||
eina_array_push(active_objects, obj);
|
||||
|
||||
#ifdef REND_DGB
|
||||
if (!is_active)
|
||||
{
|
||||
RDI(level);
|
||||
RD(" [%p] vis: %i, cache.clip.vis: %i cache.clip.a: %i [%p]\n", obj, obj->cur.visible, obj->cur.cache.clip.visible, obj->cur.cache.clip.a, obj->func->is_visible);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (_evas_render_has_map(obj)) map = 1;
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ static inline int
|
|||
evas_object_is_visible(Evas_Object *obj)
|
||||
{
|
||||
if ((obj->cur.visible) &&
|
||||
(obj->cur.cache.clip.visible) &&
|
||||
((obj->cur.cache.clip.visible) || (obj->smart.smart)) &&
|
||||
(obj->cur.cache.clip.a > 0))
|
||||
{
|
||||
if (obj->func->is_visible)
|
||||
|
@ -119,12 +119,28 @@ evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
|
|||
static inline int
|
||||
evas_object_is_active(Evas_Object *obj)
|
||||
{
|
||||
if ((evas_object_is_visible(obj) || evas_object_was_visible(obj)) &&
|
||||
(evas_object_is_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h) ||
|
||||
evas_object_was_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h)))
|
||||
return 1;
|
||||
if (evas_object_is_visible(obj) || evas_object_was_visible(obj))
|
||||
{
|
||||
if (obj->smart.smart)
|
||||
{
|
||||
int mapsmt = 0;
|
||||
if (obj->smart.smart && (obj->cur.map && obj->cur.usemap)) mapsmt = 1;
|
||||
if (!mapsmt) return 1;
|
||||
if (evas_object_is_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h) ||
|
||||
evas_object_was_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h))
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (evas_object_is_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h) ||
|
||||
evas_object_was_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||
obj->layer->evas->output.h))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue