Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_clip.c evas_events.c evas_object_main.c 


Log Message:


natah's clip patch - seems to be all genki :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_clip.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- evas_clip.c 25 Jul 2005 09:55:47 -0000      1.17
+++ evas_clip.c 29 Jul 2005 07:46:22 -0000      1.18
@@ -6,9 +6,14 @@
 {
    int cx, cy, cw, ch, cvis, cr, cg, cb, ca;
    int nx, ny, nw, nh, nvis, nr, ng, nb, na;
-
-   if (obj->layer->evas->events_frozen > 0) return;
-   evas_object_coords_recalc(obj);
+   // FIXME: This shouldn't be necessary as frozen checks should happen at a
+   // higher level.
+   // if (obj->layer->evas->events_frozen > 0) return;
+
+   /* Skip coord recalc on smart object and invalid output */
+   if ((!obj->smart.smart) &&
+       (obj->cur.cache.geometry.validity != obj->layer->evas->output_validity))
+     evas_object_coords_recalc(obj);
    cx = obj->cur.cache.geometry.x; cy = obj->cur.cache.geometry.y;
    cw = obj->cur.cache.geometry.w; ch = obj->cur.cache.geometry.h;
    if (obj->cur.color.a == 0) cvis = 0;
@@ -64,10 +69,10 @@
 {
    Evas_List *l;
 
-   if (obj->cur.cache.clip.dirty)
+   evas_object_clip_recalc(obj);
+   for (l = obj->clip.clipees; l; l = l->next)
      {
-       evas_object_clip_recalc(obj);
-       for (l = obj->clip.clipees; l; l = l->next)
+        if (obj->cur.cache.clip.dirty)
          evas_object_recalc_clippees(l->data);
      }
 }
@@ -193,7 +198,8 @@
    clip->clip.clipees = evas_list_append(clip->clip.clipees, obj);
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
+   if ((!obj->layer->evas->events_frozen) && (obj->cur.cache.clip.dirty))
+     evas_object_recalc_clippees(obj);
    if (!obj->smart.smart)
      {
        if (evas_object_is_in_output_rect(obj,
@@ -281,7 +287,8 @@
    obj->cur.clipper = NULL;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
+   if (!obj->layer->evas->events_frozen && obj->cur.cache.clip.dirty)
+     evas_object_recalc_clippees(obj);
    if (!obj->smart.smart)
      {
        if (evas_object_is_in_output_rect(obj,
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_events.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- evas_events.c       25 Jul 2005 09:55:47 -0000      1.36
+++ evas_events.c       29 Jul 2005 07:46:22 -0000      1.37
@@ -40,8 +40,6 @@
             if (obj == stop) goto done;
             if ((!evas_event_passes_through(obj)) && (!obj->smart.smart))
               {
-// FIXME: i don't think we need this
-//               evas_object_clip_recalc(obj);
                  if ((evas_object_is_in_output_rect(obj, x, y, 1, 1)) &&
                      (obj->cur.visible) &&
                      (obj->delete_me == 0) &&
@@ -140,8 +138,8 @@
                  Evas_Object *obj;
                  
                  obj = (Evas_Object *)l2;
-                 evas_object_clip_recalc(obj);
-                 evas_object_recalc_clippees(obj);
+                 if (obj->cur.cache.clip.dirty)
+                   evas_object_recalc_clippees(obj);
               }
          }
      }
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -3 -r1.31 -r1.32
--- evas_object_main.c  25 Jul 2005 09:55:47 -0000      1.31
+++ evas_object_main.c  29 Jul 2005 07:46:22 -0000      1.32
@@ -275,9 +275,10 @@
 void
 evas_object_coords_recalc(Evas_Object *obj)
 {
-   if (obj->smart.smart) return;
-   if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity)
-     return;
+   // FIXME: Check before entering
+   // if (obj->smart.smart) return;
+   // if (obj->cur.cache.geometry.validity == 
obj->layer->evas->output_validity)
+   //   return;
    obj->cur.cache.geometry.x =
      evas_coord_world_x_to_screen(obj->layer->evas, obj->cur.geometry.x);
    obj->cur.cache.geometry.y =
@@ -482,7 +483,6 @@
    evas_object_clip_dirty(obj);
    if (obj->layer->evas->events_frozen != 0)
      {
-       evas_object_recalc_clippees(obj);
        if (!pass)
          {
             if (!obj->smart.smart)
@@ -499,6 +499,8 @@
               }
          }
      }
+   else if (obj->cur.cache.clip.dirty)
+     evas_object_recalc_clippees(obj);
    evas_object_inform_call_move(obj);
 }
 
@@ -544,7 +546,6 @@
    obj->cur.cache.geometry.validity = 0;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
    if (obj->layer->evas->events_frozen != 0)
      {
        //   if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
@@ -564,6 +565,8 @@
               }
          }
      }
+   else if (obj->cur.cache.clip.dirty)
+     evas_object_recalc_clippees(obj);
    evas_object_inform_call_resize(obj);
 }
 
@@ -636,7 +639,6 @@
    evas_object_clip_dirty(obj);
    if (obj->layer->evas->events_frozen != 0)
      {
-       evas_object_recalc_clippees(obj);
        if (!evas_event_passes_through(obj))
          {
             if (!obj->smart.smart)
@@ -652,6 +654,8 @@
               }
          }
      }
+   else if (obj->cur.cache.clip.dirty)
+     evas_object_recalc_clippees(obj);
    evas_object_inform_call_show(obj);
 }
 
@@ -683,7 +687,6 @@
    evas_object_clip_dirty(obj);
    if (obj->layer->evas->events_frozen != 0)
      {
-       evas_object_recalc_clippees(obj);
        if (!evas_event_passes_through(obj))
          {
             if (!obj->smart.smart)
@@ -731,6 +734,8 @@
               }
          }
      }
+   else if (obj->cur.cache.clip.dirty)
+     evas_object_recalc_clippees(obj);
    evas_object_inform_call_hide(obj);
 }
 




-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September
19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to