Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_object_main.c evas_render.c evas_stack.c Log Message: fix restack draw bug =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- evas_object_main.c 27 Oct 2005 02:44:36 -0000 1.37 +++ evas_object_main.c 27 Oct 2005 04:25:30 -0000 1.38 @@ -296,14 +296,14 @@ evas_object_is_active(Evas_Object *obj) { if (obj->smart.smart) return 0; - if ((evas_object_is_in_output_rect(obj, 0, 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, obj->layer->evas->output.h) || evas_object_was_in_output_rect(obj, 0, 0, obj->layer->evas->output.w, - obj->layer->evas->output.h)) && - (evas_object_is_visible(obj) || - evas_object_was_visible(obj))) + obj->layer->evas->output.h))) return 1; return 0; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_render.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- evas_render.c 27 Oct 2005 02:44:36 -0000 1.10 +++ evas_render.c 27 Oct 2005 04:25:30 -0000 1.11 @@ -73,7 +73,6 @@ /* build active object list */ if (evas_object_is_active(obj)) *active_objects = evas_list_append(*active_objects, obj); - /* something changed... maybe... */ if (restack) { obj->restack = 1; @@ -85,6 +84,7 @@ { Evas_Object_List *l; + obj->func->render_pre(obj); for (l = obj->smart.contained; l; l = l->next) { Evas_Object *obj2; @@ -94,7 +94,6 @@ active_objects, restack_objects, obj->restack); } - } else { @@ -105,7 +104,6 @@ obj->func->render_pre(obj); } } - /* nothing changed at all */ else { if ((!obj->clip.clipees) && (obj->delete_me == 0)) @@ -114,6 +112,7 @@ { Evas_Object_List *l; + obj->func->render_pre(obj); for (l = obj->smart.contained; l; l = l->next) { Evas_Object *obj2; @@ -136,8 +135,8 @@ obj->cur.cache.clip.h); } } + obj->restack = 0; } - obj->restack = 0; } static void @@ -368,22 +367,24 @@ } /* if the object is flagged for deletion - note it */ if (obj->delete_me == 2) - delete_objects = evas_list_append(delete_objects, obj); - if (obj->delete_me) obj->delete_me ++; + { + delete_objects = evas_list_append(delete_objects, obj); + } + else if (obj->delete_me != 0) obj->delete_me++; } + /* free our obscuring object list */ + evas_list_free(obscuring_objects_orig); + /* free our active object list */ + evas_list_free(active_objects); /* delete all objects flagged for deletion now */ while (delete_objects) { Evas_Object *obj; obj = (Evas_Object *)(delete_objects->data); - delete_objects = evas_list_remove(delete_objects, obj); + delete_objects = evas_list_remove_list(delete_objects, delete_objects); evas_object_free(obj, 1); } - /* free our obscuring object list */ - evas_list_free(obscuring_objects_orig); - /* free our active object list */ - evas_list_free(active_objects); e->changed = 0; e->viewport.changed = 0; e->output.changed = 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_stack.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- evas_stack.c 27 Oct 2005 02:44:36 -0000 1.19 +++ evas_stack.c 27 Oct 2005 04:25:30 -0000 1.20 @@ -78,6 +78,7 @@ } obj->restack = 1; evas_object_change(obj); + evas_object_inform_call_restack(obj); if (obj->layer->evas->events_frozen <= 0) { if (!evas_event_passes_through(obj)) @@ -96,7 +97,6 @@ } } } - evas_object_inform_call_restack(obj); } /** @@ -137,6 +137,7 @@ } obj->restack = 1; evas_object_change(obj); + evas_object_inform_call_restack(obj); if (obj->layer->evas->events_frozen <= 0) { if (!evas_event_passes_through(obj)) @@ -155,7 +156,6 @@ } } } - evas_object_inform_call_restack(obj); } /** @@ -213,6 +213,7 @@ } obj->restack = 1; evas_object_change(obj); + evas_object_inform_call_restack(obj); if (obj->layer->evas->events_frozen <= 0) { if (!evas_event_passes_through(obj)) @@ -231,7 +232,6 @@ } } } - evas_object_inform_call_restack(obj); } /** @@ -289,6 +289,7 @@ } obj->restack = 1; evas_object_change(obj); + evas_object_inform_call_restack(obj); if (obj->layer->evas->events_frozen <= 0) { if (!evas_event_passes_through(obj)) @@ -307,7 +308,6 @@ } } } - evas_object_inform_call_restack(obj); } /** ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today * Register for a JBoss Training Course Free Certification Exam for All Training Attendees Through End of 2005 Visit http://www.jboss.com/services/certification for more information _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs