Enlightenment CVS committal
Author : cedric
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas
Modified Files:
evas_render.c
Log Message:
Cleanly handle evas_object_release.
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_render.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- evas_render.c 12 Jun 2008 13:22:26 -0000 1.31
+++ evas_render.c 17 Jun 2008 09:04:12 -0000 1.32
@@ -244,53 +244,62 @@
obj = _evas_array_get(pending_objects, i);
+ if (!obj->layer) goto clean_stuff;
+
evas_object_clip_recalc(obj);
is_active = evas_object_is_active(obj);
- if (!is_active && !obj->is_active && !obj->render_pre && !obj->rect_del)
- ok = 1;
- else
- if (obj->is_active == is_active)
- {
- if (obj->changed)
- {
- if (obj->smart.smart)
+ if (!is_active &&
+ !obj->is_active &&
+ !obj->render_pre &&
+ !obj->rect_del)
+ {
+ ok = 1;
+ goto clean_stuff;
+ }
+
+ if (obj->is_active == is_active)
+ {
+ if (obj->changed)
+ {
+ if (obj->smart.smart)
+ {
+ if (obj->render_pre
+ || obj->rect_del)
+ ok = 1;
+ }
+ else
+ if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
+ ((evas_object_is_visible(obj) &&
(!obj->cur.have_clipees)) ||
+ (evas_object_was_visible(obj) &&
(!obj->prev.have_clipees))))
{
- if (obj->render_pre
- || obj->rect_del)
+ if (!(obj->render_pre
+ || obj->rect_del))
ok = 1;
}
else
- if ((is_active) && (obj->restack) && (!obj->clip.clipees)
&&
+ if (is_active && (!obj->clip.clipees) &&
((evas_object_is_visible(obj) &&
(!obj->cur.have_clipees)) ||
(evas_object_was_visible(obj) &&
(!obj->prev.have_clipees))))
{
- if (!(obj->render_pre
- || obj->rect_del))
+ if (obj->render_pre
+ || obj->rect_del)
ok = 1;
}
- else
- if (is_active && (!obj->clip.clipees) &&
- ((evas_object_is_visible(obj) &&
(!obj->cur.have_clipees)) ||
- (evas_object_was_visible(obj) &&
(!obj->prev.have_clipees))))
- {
- if (obj->render_pre
- || obj->rect_del)
- ok = 1;
- }
- }
- else
- {
- if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
- (!obj->cur.have_clipees ||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees)))
- && evas_object_is_opaque(obj) &&
evas_object_is_visible(obj))
- if (obj->rect_del || obj->smart.smart)
- {
- ok = 1;
- }
- }
- }
+ }
+ else
+ {
+ if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
+ (!obj->cur.have_clipees || (evas_object_was_visible(obj)
&& (!obj->prev.have_clipees)))
+ && evas_object_is_opaque(obj) &&
evas_object_is_visible(obj))
+ if (obj->rect_del || obj->smart.smart)
+ {
+ ok = 1;
+ }
+ }
+ }
+ clean_stuff:
if (!ok)
{
evas_array_clean(&e->active_objects);
@@ -311,7 +320,8 @@
Evas_Object *obj;
obj = data;
- if (obj->delete_me) return 0;
+ if (!obj->layer) obj->changed = 0;
+ if (obj->delete_me) obj->changed = 0;
return obj->changed;
}
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs