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

Reply via email to