Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas
Modified Files:
evas_layer.c evas_main.c evas_object_main.c
Log Message:
oops. on evas_free nested smart objects might just not clean up right.. fix
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_layer.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_layer.c 5 Mar 2003 02:30:16 -0000 1.5
+++ evas_layer.c 30 Jul 2003 02:58:10 -0000 1.6
@@ -54,7 +54,7 @@
Evas_Object *obj;
obj = (Evas_Object *)l;
- evas_object_del(obj);
+ if (!obj->smart.parent) evas_object_del(obj);
}
}
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_main.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_main.c 22 Jun 2003 02:33:25 -0000 1.6
+++ evas_main.c 30 Jul 2003 02:58:10 -0000 1.7
@@ -77,17 +77,32 @@
{
Evas_Object_List *l;
int i;
+ int del = 1;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
return;
MAGIC_CHECK_END();
- for (l = (Evas_Object_List *)(e->layers); l; l = l->next)
+ while (del != 0)
{
- Evas_Layer *lay;
+ del = 0;
+ for (l = (Evas_Object_List *)(e->layers); l; l = l->next)
+ {
+ Evas_Layer *lay;
+ Evas_Object_List *ll;
+
+ lay = (Evas_Layer *)l;
+ evas_layer_pre_free(lay);
+ for (ll = (Evas_Object_List *)lay->objects; ll; ll = ll->next)
+ {
+ Evas_Object *o;
+
+ o = (Evas_Object *)ll;
+ if (!o->delete_me)
+ del += o->delete_me;
+ }
+ }
- lay = (Evas_Layer *)l;
- evas_layer_pre_free(lay);
}
while (e->layers)
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- evas_object_main.c 22 Jul 2003 05:16:47 -0000 1.14
+++ evas_object_main.c 30 Jul 2003 02:58:10 -0000 1.15
@@ -19,7 +19,6 @@
void
evas_object_free(Evas_Object *obj, int clean_layer)
{
- evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL);
evas_object_grabs_cleanup(obj);
evas_object_intercept_cleanup(obj);
evas_object_smart_cleanup(obj);
@@ -419,6 +418,7 @@
obj->layer->evas->focused = NULL;
evas_object_event_callback_call(obj, EVAS_CALLBACK_FOCUS_OUT, NULL);
}
+ evas_object_event_callback_call(obj, EVAS_CALLBACK_FREE, NULL);
evas_object_grabs_cleanup(obj);
evas_object_hide(obj);
while (obj->clip.clipees) evas_object_clip_unset(obj->clip.clipees->data);
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs