fix renders now

SVN revision: 18009
This commit is contained in:
Carsten Haitzler 2005-10-27 06:40:28 +00:00
parent c39bf3cc4e
commit 5650f1a234
2 changed files with 14 additions and 15 deletions

View File

@ -296,13 +296,10 @@ int
evas_object_is_active(Evas_Object *obj)
{
if (obj->smart.smart) return 0;
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,
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,
evas_object_was_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
obj->layer->evas->output.h)))
return 1;
return 0;

View File

@ -74,9 +74,13 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Evas_List **active
evas_object_clip_recalc(obj);
/* build active object list */
is_active = evas_object_is_active(obj);
if (is_active)
*active_objects = evas_list_append(*active_objects, obj);
if ((obj->changed) || (restack))
if (is_active) *active_objects = evas_list_append(*active_objects, obj);
if (restack)
{
obj->restack = 1;
obj->changed = 1;
}
if (obj->changed)
{
if (obj->smart.smart)
{
@ -91,15 +95,14 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Evas_List **active
_evas_render_phase1_object_process(e, obj2,
active_objects,
restack_objects,
obj->restack | restack);
obj->restack);
}
}
else
{
if ((is_active) && (obj->restack | restack) &&
(!obj->clip.clipees))
if ((is_active) && (obj->restack) && (!obj->clip.clipees))
*restack_objects = evas_list_append(*restack_objects, obj);
else
else if (is_active)
obj->func->render_pre(obj);
}
}
@ -135,7 +138,7 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Evas_List **active
}
}
}
obj->restack = 0;
if (!is_active) obj->restack = 0;
}
static void
@ -364,7 +367,6 @@ evas_render_updates(Evas *e)
obj->restack = 0;
obj->changed = 0;
}
/* if the object is flagged for deletion - note it */
if (obj->delete_me == 2)
{
delete_objects = evas_list_append(delete_objects, obj);