Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_object_gradient.c evas_object_image.c evas_stack.c Log Message: patches that i said were in - commit. (see my reply emails) also finish off a TODO item or 2 =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_gradient.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- evas_object_gradient.c 2 May 2006 07:28:46 -0000 1.12 +++ evas_object_gradient.c 7 Jun 2006 23:30:14 -0000 1.13 @@ -129,7 +129,6 @@ o->engine_data, r, g, b, a, distance); - if (a != 255) o->cur.gradient_opaque = 0; o->gradient_changed = 1; o->changed = 1; evas_object_change(obj); @@ -158,7 +157,7 @@ o->engine_data); o->gradient_changed = 1; o->changed = 1; - o->cur.gradient_opaque = 1; + o->cur.gradient_opaque = 0; evas_object_change(obj); } @@ -201,7 +200,6 @@ o->engine_data, data, len, has_alpha); o->imported_data = 1; - if (has_alpha) o->cur.gradient_opaque = 0; o->gradient_changed = 1; o->changed = 1; evas_object_change(obj); @@ -235,7 +233,7 @@ obj->layer->evas->engine.data.context, o->engine_data); o->imported_data = 0; - o->cur.gradient_opaque = 1; + o->cur.gradient_opaque = 0; o->gradient_changed = 1; o->changed = 1; evas_object_change(obj); @@ -736,16 +734,20 @@ obj->cur.render_op); if (o->engine_data) { - if (o->gradient_changed) - obj->layer->evas->engine.func->gradient_map(output, context, o->engine_data, - o->cur.spread); - obj->layer->evas->engine.func->gradient_draw(output, context, surface, - o->engine_data, - obj->cur.cache.geometry.x + x, - obj->cur.cache.geometry.y + y, - obj->cur.cache.geometry.w, - obj->cur.cache.geometry.h, - o->cur.angle, o->cur.spread); + o->engine_data = obj->layer->evas->engine.func->gradient_geometry_init(output, o->engine_data, o->cur.spread); + if (o->engine_data) + { + if (o->gradient_changed) + obj->layer->evas->engine.func->gradient_map(output, context, o->engine_data, + o->cur.spread); + obj->layer->evas->engine.func->gradient_draw(output, context, surface, + o->engine_data, + obj->cur.cache.geometry.x + x, + obj->cur.cache.geometry.y + y, + obj->cur.cache.geometry.w, + obj->cur.cache.geometry.h, + o->cur.angle, o->cur.spread); + } } } @@ -787,9 +789,6 @@ o->changed = 1; if (obj->cur.interpolation.color_space != obj->prev.interpolation.color_space) o->gradient_changed = 1; - if ((obj->cur.render_op != EVAS_RENDER_COPY) && - (obj->cur.cache.clip.a != 255)) - o->cur.gradient_opaque = 0; if (obj->cur.render_op != obj->prev.render_op) o->changed = 1; if (o->changed && o->engine_data) @@ -811,8 +810,10 @@ o->engine_data = obj->layer->evas->engine.func->gradient_geometry_init(obj->layer->evas->engine.data.output, o->engine_data, o->cur.spread); if (o->engine_data) { - o->cur.gradient_opaque &= !(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output, o->engine_data, o->cur.spread, obj->cur.render_op)); + o->cur.gradient_opaque = !(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output, o->engine_data, o->cur.spread, obj->cur.render_op)); } + if (obj->cur.cache.clip.a != 255) + o->cur.gradient_opaque = 0; } /* now figure what changed and add draw rects */ /* if it just became visible or invisible */ @@ -909,9 +910,6 @@ /* currently fully opaque over the entire gradient it occupies */ o = (Evas_Object_Gradient *)(obj->object_data); if (!o->engine_data) return 0; - o->cur.gradient_opaque &= - !(obj->layer->evas->engine.func->gradient_alpha_get(obj->layer->evas->engine.data.output, - o->engine_data, o->cur.spread, obj->cur.render_op)); return o->cur.gradient_opaque; } =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_image.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- evas_object_image.c 31 May 2006 18:33:45 -0000 1.40 +++ evas_object_image.c 7 Jun 2006 23:30:14 -0000 1.41 @@ -1389,6 +1389,9 @@ } o->dirty_pixels = 0; } + o->engine_data = obj->layer->evas->engine.func->image_border_set(output, o->engine_data, + o->cur.border.l, o->cur.border.r, + o->cur.border.t, o->cur.border.b); idx = evas_object_image_figure_x_fill(obj, o->cur.fill.x, o->cur.fill.w, &idw); idy = evas_object_image_figure_y_fill(obj, o->cur.fill.y, o->cur.fill.h, &idh); if (idw < 1.0) idw = 1.0; =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_stack.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- evas_stack.c 6 Jan 2006 23:05:17 -0000 1.22 +++ evas_stack.c 7 Jun 2006 23:30:14 -0000 1.23 @@ -325,8 +325,22 @@ return NULL; MAGIC_CHECK_END(); if (obj->smart.parent) - return (Evas_Object *)(((Evas_Object_List *)(obj))->next); - return evas_object_above_get_internal(obj); + { + do + { + obj = (Evas_Object *)(((Evas_Object_List *)(obj))->next); + if ((obj) && (!obj->delete_me)) return obj; + } + while (obj); + return NULL; + } + obj = evas_object_above_get_internal(obj); + while (obj) + { + if (!obj->delete_me) return obj; + obj = evas_object_above_get_internal(obj); + } + return NULL; } /** @@ -342,8 +356,22 @@ return NULL; MAGIC_CHECK_END(); if (obj->smart.parent) - return (Evas_Object *)(((Evas_Object_List *)(obj))->prev); - return evas_object_below_get_internal(obj); + { + do + { + obj = (Evas_Object *)(((Evas_Object_List *)(obj))->prev); + if ((obj) && (!obj->delete_me)) return obj; + } + while (obj); + return NULL; + } + obj = evas_object_below_get_internal(obj); + while (obj) + { + if (!obj->delete_me) return obj; + obj = evas_object_below_get_internal(obj); + } + return NULL; } /** @@ -359,7 +387,16 @@ return NULL; MAGIC_CHECK_END(); if (e->layers) - return e->layers->objects; + { + Evas_Object *obj; + + obj = e->layers->objects; + while (obj) + { + if (!obj->delete_me) return obj; + obj = evas_object_above_get_internal(obj); + } + } return NULL; } @@ -372,7 +409,7 @@ EAPI Evas_Object * evas_object_top_get(Evas *e) { - Evas_Object *obj2 = NULL; + Evas_Object *obj = NULL; Evas_Object_List *list; Evas_Layer *layer; @@ -389,8 +426,14 @@ list = (Evas_Object_List *) layer->objects; if (!list) return NULL; - obj2 = (Evas_Object *) list->last; - if (!obj2) return NULL; + obj = (Evas_Object *) list->last; + if (!obj) return NULL; + + while (obj) + { + if (!obj->delete_me) return obj; + obj = evas_object_below_get_internal(obj); + } - return obj2; + return obj; } _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs