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_line.c 
        evas_object_main.c evas_object_polygon.c evas_object_smart.c 
        evas_object_text.c evas_stack.c 


Log Message:


1. id3 album cover loader patches
2. i reduced list note memory usage by 20% - shoudl work better with malloc
as ti is now a power of 2 as well
3. optimised evas internals to make use of event freezes to make e17'sw menu
popups a LOT snappier
4. fixed using last member of list nodes - bad - shoudl use api as this is
private stuff really
5. added config profile stuff to e17  u can literally maintain multiple
config profiles and choose which one at any time etc.

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_clip.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- evas_clip.c 18 Jun 2005 01:00:29 -0000      1.15
+++ evas_clip.c 22 Jul 2005 10:28:10 -0000      1.16
@@ -7,6 +7,7 @@
    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);
    cx = obj->cur.cache.geometry.x; cy = obj->cur.cache.geometry.y;
    cw = obj->cur.cache.geometry.w; ch = obj->cur.cache.geometry.h;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_events.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -3 -r1.34 -r1.35
--- evas_events.c       18 Jun 2005 01:00:29 -0000      1.34
+++ evas_events.c       22 Jul 2005 10:28:10 -0000      1.35
@@ -4,8 +4,18 @@
 int
 evas_event_passes_through(Evas_Object *obj)
 {
+   if (obj->layer->evas->events_frozen > 0) return 1;
    if (obj->pass_events) return 1;
-   if (obj->smart.parent) return evas_event_passes_through(obj->smart.parent);
+   if (obj->parent_cache_valid) return obj->parent_pass_events;
+   if (obj->smart.parent)
+     {
+       int par_pass;
+       
+       par_pass = evas_event_passes_through(obj->smart.parent);
+       obj->parent_cache_valid = 1;
+       obj->parent_pass_events = par_pass;
+       return par_pass;
+     }
    return 0;
 }
 
@@ -115,6 +125,26 @@
    return;
    MAGIC_CHECK_END();
    e->events_frozen--;
+   if (e->events_frozen == 0)
+     {
+       Evas_Object_List *l;
+       
+       for (l = (Evas_Object_List *)e->layers; l; l = l->next)
+         {
+            Evas_Object_List *l2;
+            Evas_Layer *lay;
+            
+            lay = (Evas_Layer *)l;
+            for (l2 = (Evas_Object_List *)lay->objects; l2; l2 = l2->next)
+              {
+                 Evas_Object *obj;
+                 
+                 obj = (Evas_Object *)l2;
+                 evas_object_clip_recalc(obj);
+                 evas_object_recalc_clippees(obj);
+              }
+         }
+     }
    if (e->events_frozen < 0)
      evas_debug_generic("  Thaw of events when already thawed!!!\n");
 }
@@ -820,6 +850,7 @@
    return;
    MAGIC_CHECK_END();
    obj->pass_events = pass;
+   evas_object_smart_member_cache_invalidate(obj);
    if (evas_object_is_in_output_rect(obj,
                                     obj->layer->evas->pointer.x,
                                     obj->layer->evas->pointer.y, 1, 1))
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_line.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- evas_object_line.c  18 Jun 2005 01:00:29 -0000      1.13
+++ evas_object_line.c  22 Jul 2005 10:28:10 -0000      1.14
@@ -111,10 +111,13 @@
    MAGIC_CHECK_END();
    if ((x1 == o->cur.x1) && (y1 == o->cur.y1) &&
        (x2 == o->cur.x2) && (y2 == o->cur.y2)) return;
-   if (!evas_event_passes_through(obj))
-     was = evas_object_is_in_output_rect(obj,
-                                        obj->layer->evas->pointer.x,
-                                        obj->layer->evas->pointer.y, 1, 1);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       if (!evas_event_passes_through(obj))
+         was = evas_object_is_in_output_rect(obj,
+                                             obj->layer->evas->pointer.x,
+                                             obj->layer->evas->pointer.y, 1, 
1);
+     }
    if (x1 < x2)
      {
        min_x = x1;
@@ -147,16 +150,19 @@
    o->changed = 1;
    evas_object_change(obj);
    evas_object_coords_recalc(obj);
-   is = evas_object_is_in_output_rect(obj,
-                                     obj->layer->evas->pointer.x,
-                                     obj->layer->evas->pointer.y, 1, 1);
-   if (!evas_event_passes_through(obj))
-     {
-       if ((is ^ was) && obj->cur.visible)
-         evas_event_feed_mouse_move(obj->layer->evas,
-                                    obj->layer->evas->pointer.x,
-                                    obj->layer->evas->pointer.y,
-                                    NULL);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       is = evas_object_is_in_output_rect(obj,
+                                          obj->layer->evas->pointer.x,
+                                          obj->layer->evas->pointer.y, 1, 1);
+       if (!evas_event_passes_through(obj))
+         {
+            if ((is ^ was) && obj->cur.visible)
+              evas_event_feed_mouse_move(obj->layer->evas,
+                                         obj->layer->evas->pointer.x,
+                                         obj->layer->evas->pointer.y,
+                                         NULL);
+         }
      }
    evas_object_inform_call_move(obj);
    evas_object_inform_call_resize(obj);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_main.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- evas_object_main.c  18 Jun 2005 01:00:29 -0000      1.29
+++ evas_object_main.c  22 Jul 2005 10:28:10 -0000      1.30
@@ -449,7 +449,7 @@
 void
 evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
 {
-   int is, was = 0;
+   int is, was = 0, pass = 0;
 
    MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
    return;
@@ -467,28 +467,35 @@
        evas_object_inform_call_move(obj);
        return;
      }
-   if (!evas_event_passes_through(obj))
-     was = evas_object_is_in_output_rect(obj,
-                                        obj->layer->evas->pointer.x,
-                                        obj->layer->evas->pointer.y, 1, 1);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       pass = evas_event_passes_through(obj);
+       if (pass)
+         was = evas_object_is_in_output_rect(obj,
+                                             obj->layer->evas->pointer.x,
+                                             obj->layer->evas->pointer.y, 1, 
1);
+     }
    obj->cur.geometry.x = x;
    obj->cur.geometry.y = y;
    obj->cur.cache.geometry.validity = 0;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       evas_object_recalc_clippees(obj);
+       if (!pass)
          {
-            is = evas_object_is_in_output_rect(obj,
-                                               obj->layer->evas->pointer.x,
-                                               obj->layer->evas->pointer.y, 1, 
1);
-            if ((is ^ was) && obj->cur.visible)
-              evas_event_feed_mouse_move(obj->layer->evas,
-                                         obj->layer->evas->pointer.x,
-                                         obj->layer->evas->pointer.y,
-                                         NULL);
+            if (!obj->smart.smart)
+              {
+                 is = evas_object_is_in_output_rect(obj,
+                                                    
obj->layer->evas->pointer.x,
+                                                    
obj->layer->evas->pointer.y, 1, 1);
+                 if ((is ^ was) && obj->cur.visible)
+                   evas_event_feed_mouse_move(obj->layer->evas,
+                                              obj->layer->evas->pointer.x,
+                                              obj->layer->evas->pointer.y,
+                                              NULL);
+              }
          }
      }
    evas_object_inform_call_move(obj);
@@ -504,7 +511,7 @@
 void
 evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
 {
-   int is, was = 0;
+   int is, was = 0, pass = 0;
 
    MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
    return;
@@ -523,29 +530,36 @@
        evas_object_inform_call_resize(obj);
        return;
      }
-   if (!evas_event_passes_through(obj))
-     was = evas_object_is_in_output_rect(obj,
-                                        obj->layer->evas->pointer.x,
-                                        obj->layer->evas->pointer.y, 1, 1);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       pass = evas_event_passes_through(obj);
+       if (!pass)
+         was = evas_object_is_in_output_rect(obj,
+                                             obj->layer->evas->pointer.x,
+                                             obj->layer->evas->pointer.y, 1, 
1);
+     }
    obj->cur.geometry.w = w;
    obj->cur.geometry.h = h;
    obj->cur.cache.geometry.validity = 0;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
    evas_object_recalc_clippees(obj);
-//   if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       //   if (obj->func->coords_recalc) obj->func->coords_recalc(obj);
+       if (!pass)
          {
-            is = evas_object_is_in_output_rect(obj,
-                                               obj->layer->evas->pointer.x,
-                                               obj->layer->evas->pointer.y, 1, 
1);
-            if ((is ^ was) && (obj->cur.visible))
-              evas_event_feed_mouse_move(obj->layer->evas,
-                                         obj->layer->evas->pointer.x,
-                                         obj->layer->evas->pointer.y,
-                                         NULL);
+            if (!obj->smart.smart)
+              {
+                 is = evas_object_is_in_output_rect(obj,
+                                                    
obj->layer->evas->pointer.x,
+                                                    
obj->layer->evas->pointer.y, 1, 1);
+                 if ((is ^ was) && (obj->cur.visible))
+                   evas_event_feed_mouse_move(obj->layer->evas,
+                                              obj->layer->evas->pointer.x,
+                                              obj->layer->evas->pointer.y,
+                                              NULL);
+              }
          }
      }
    evas_object_inform_call_resize(obj);
@@ -618,18 +632,21 @@
    obj->cur.visible = 1;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       evas_object_recalc_clippees(obj);
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
+            if (!obj->smart.smart)
+              {
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1))
+                   evas_event_feed_mouse_move(obj->layer->evas,
                                               obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1))
-              evas_event_feed_mouse_move(obj->layer->evas,
-                                         obj->layer->evas->pointer.x,
-                                         obj->layer->evas->pointer.y,
-                                         NULL);
+                                              obj->layer->evas->pointer.y,
+                                              NULL);
+              }
          }
      }
    evas_object_inform_call_show(obj);
@@ -661,48 +678,51 @@
    obj->cur.visible = 0;
    evas_object_change(obj);
    evas_object_clip_dirty(obj);
-   evas_object_recalc_clippees(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       evas_object_recalc_clippees(obj);
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
-                                              obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1))
-              evas_event_feed_mouse_move(obj->layer->evas,
-                                         obj->layer->evas->pointer.x,
-                                         obj->layer->evas->pointer.y,
-                                         NULL);
-            if (obj->mouse_grabbed > 0)
+            if (!obj->smart.smart)
               {
-                 if (obj->layer->evas->pointer.mouse_grabbed >= 
obj->mouse_grabbed)
-                   obj->layer->evas->pointer.mouse_grabbed -= 
obj->mouse_grabbed;
-              }
-              {
-                 obj->mouse_grabbed = 0;
-                 if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
-                   {
-                      obj->layer->evas->pointer.object.in = 
evas_list_remove(obj->layer->evas->pointer.object.in, obj);
-                   }
-                 if (obj->layer->evas->events_frozen > 0)
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1))
+                   evas_event_feed_mouse_move(obj->layer->evas,
+                                              obj->layer->evas->pointer.x,
+                                              obj->layer->evas->pointer.y,
+                                              NULL);
+                 if (obj->mouse_grabbed > 0)
                    {
-                      obj->mouse_in = 0;
-                      return;
+                      if (obj->layer->evas->pointer.mouse_grabbed >= 
obj->mouse_grabbed)
+                        obj->layer->evas->pointer.mouse_grabbed -= 
obj->mouse_grabbed;
                    }
-                 if (obj->mouse_in)
                    {
-                      Evas_Event_Mouse_Out ev;
-
-                      obj->mouse_in = 0;
-                      ev.buttons = obj->layer->evas->pointer.button;
-                      ev.output.x = obj->layer->evas->pointer.x;
-                      ev.output.y = obj->layer->evas->pointer.y;
-                      ev.canvas.x = obj->layer->evas->pointer.canvas_x;
-                      ev.canvas.y = obj->layer->evas->pointer.canvas_y;
-                      ev.data = NULL;
-                      ev.modifiers = &(obj->layer->evas->modifiers);
-                      ev.locks = &(obj->layer->evas->locks);
-                      evas_object_event_callback_call(obj, 
EVAS_CALLBACK_MOUSE_OUT, &ev);
+                      obj->mouse_grabbed = 0;
+                      if ((obj->mouse_in) || (obj->mouse_grabbed > 0))
+                        {
+                           obj->layer->evas->pointer.object.in = 
evas_list_remove(obj->layer->evas->pointer.object.in, obj);
+                        }
+                      if (obj->layer->evas->events_frozen > 0)
+                        {
+                           obj->mouse_in = 0;
+                           return;
+                        }
+                      if (obj->mouse_in)
+                        {
+                           Evas_Event_Mouse_Out ev;
+                           
+                           obj->mouse_in = 0;
+                           ev.buttons = obj->layer->evas->pointer.button;
+                           ev.output.x = obj->layer->evas->pointer.x;
+                           ev.output.y = obj->layer->evas->pointer.y;
+                           ev.canvas.x = obj->layer->evas->pointer.canvas_x;
+                           ev.canvas.y = obj->layer->evas->pointer.canvas_y;
+                           ev.data = NULL;
+                           ev.modifiers = &(obj->layer->evas->modifiers);
+                           ev.locks = &(obj->layer->evas->locks);
+                           evas_object_event_callback_call(obj, 
EVAS_CALLBACK_MOUSE_OUT, &ev);
+                        }
                    }
               }
          }
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_polygon.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- evas_object_polygon.c       18 Jun 2005 01:00:29 -0000      1.13
+++ evas_object_polygon.c       22 Jul 2005 10:28:10 -0000      1.14
@@ -105,10 +105,13 @@
    MAGIC_CHECK(o, Evas_Object_Polygon, MAGIC_OBJ_POLYGON);
    return;
    MAGIC_CHECK_END();
-   if (!evas_event_passes_through(obj))
-     was = evas_object_is_in_output_rect(obj,
-                                        obj->layer->evas->pointer.x,
-                                        obj->layer->evas->pointer.y, 1, 1);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       if (!evas_event_passes_through(obj))
+         was = evas_object_is_in_output_rect(obj,
+                                             obj->layer->evas->pointer.x,
+                                             obj->layer->evas->pointer.y, 1, 
1);
+     }
    p = malloc(sizeof(Evas_Polygon_Point));
    if (!p) return;
    p->x = x;
@@ -142,16 +145,19 @@
    o->changed = 1;
    evas_object_change(obj);
    evas_object_coords_recalc(obj);
-   is = evas_object_is_in_output_rect(obj,
-                                     obj->layer->evas->pointer.x,
-                                     obj->layer->evas->pointer.y, 1, 1);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if ((is ^ was) && obj->cur.visible)
-         evas_event_feed_mouse_move(obj->layer->evas,
-                                    obj->layer->evas->pointer.x,
-                                    obj->layer->evas->pointer.y,
-                                    NULL);
+       is = evas_object_is_in_output_rect(obj,
+                                          obj->layer->evas->pointer.x,
+                                          obj->layer->evas->pointer.y, 1, 1);
+       if (!evas_event_passes_through(obj))
+         {
+            if ((is ^ was) && obj->cur.visible)
+              evas_event_feed_mouse_move(obj->layer->evas,
+                                         obj->layer->evas->pointer.x,
+                                         obj->layer->evas->pointer.y,
+                                         NULL);
+         }
      }
    evas_object_inform_call_move(obj);
    evas_object_inform_call_resize(obj);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_smart.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- evas_object_smart.c 18 Jun 2005 01:00:29 -0000      1.14
+++ evas_object_smart.c 22 Jul 2005 10:28:10 -0000      1.15
@@ -136,6 +136,7 @@
 
    obj->smart.parent = smart_obj;
    smart_obj->smart.contained = evas_list_append(smart_obj->smart.contained, 
obj);
+   evas_object_smart_member_cache_invalidate(obj);
 }
 
 /**
@@ -155,6 +156,7 @@
 
    obj->smart.parent->smart.contained = 
evas_list_remove(obj->smart.parent->smart.contained, obj);
    obj->smart.parent = NULL;
+   evas_object_smart_member_cache_invalidate(obj);
 }
 
 /**
@@ -357,6 +359,21 @@
    obj->smart.smart = NULL;
 }
 
+void
+evas_object_smart_member_cache_invalidate(Evas_Object *obj)
+{
+   Evas_List *l;
+   
+   obj->parent_cache_valid = 0;
+   for (l = obj->smart.contained; l; l = l->next)
+     {
+       Evas_Object *obj2;
+       
+       obj2 = l->data;
+       evas_object_smart_member_cache_invalidate(obj2);
+     }
+}
+
 /* all nice and private */
 static void
 evas_object_smart_init(Evas_Object *obj)
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_text.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -3 -r1.39 -r1.40
--- evas_object_text.c  18 Jun 2005 01:00:29 -0000      1.39
+++ evas_object_text.c  22 Jul 2005 10:28:10 -0000      1.40
@@ -135,7 +135,7 @@
 evas_object_text_font_set(Evas_Object *obj, const char *font, Evas_Font_Size 
size)
 {
    Evas_Object_Text *o;
-   int is, was = 0;
+   int is, was = 0, pass = 0;
    int same_font = 0;
 
    if (!font) return;
@@ -152,10 +152,14 @@
        same_font = 1;
        if (size == o->cur.size) return;
      }
-   if (!evas_event_passes_through(obj))
-     was = evas_object_is_in_output_rect(obj,
-                                        obj->layer->evas->pointer.x,
-                                        obj->layer->evas->pointer.y, 1, 1);
+   if (obj->layer->evas->events_frozen != 0)
+     {
+       pass = evas_event_passes_through(obj);
+       if (!pass)
+         was = evas_object_is_in_output_rect(obj,
+                                             obj->layer->evas->pointer.x,
+                                             obj->layer->evas->pointer.y, 1, 
1);
+     }
    /* DO IT */
    if (o->engine_data)
      {
@@ -218,16 +222,19 @@
    o->changed = 1;
    evas_object_change(obj);
    evas_object_coords_recalc(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       is = evas_object_is_in_output_rect(obj,
-                                          obj->layer->evas->pointer.x,
-                                          obj->layer->evas->pointer.y, 1, 1);
-       if ((is ^ was) && obj->cur.visible)
-         evas_event_feed_mouse_move(obj->layer->evas,
-                                    obj->layer->evas->pointer.x,
-                                    obj->layer->evas->pointer.y,
-                                    NULL);
+       if (!pass)
+         {
+            is = evas_object_is_in_output_rect(obj,
+                                               obj->layer->evas->pointer.x,
+                                               obj->layer->evas->pointer.y, 1, 
1);
+            if ((is ^ was) && obj->cur.visible)
+              evas_event_feed_mouse_move(obj->layer->evas,
+                                         obj->layer->evas->pointer.x,
+                                         obj->layer->evas->pointer.y,
+                                         NULL);
+         }
      }
    evas_object_inform_call_resize(obj);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_stack.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- evas_stack.c        18 Jun 2005 01:00:30 -0000      1.13
+++ evas_stack.c        22 Jul 2005 10:28:10 -0000      1.14
@@ -72,15 +72,18 @@
      }
    obj->restack = 1;
    evas_object_change(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
-                                              obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1) &&
-                obj->cur.visible)
-              evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+            if (!obj->smart.smart)
+              {
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1) &&
+                     obj->cur.visible)
+                   evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+              }
          }
      }
    evas_object_inform_call_restack(obj);
@@ -118,15 +121,18 @@
      }
    obj->restack = 1;
    evas_object_change(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
-                                              obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1) &&
-                obj->cur.visible)
-              evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+            if (!obj->smart.smart)
+              {
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1) &&
+                     obj->cur.visible)
+                   evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+              }
          }
      }
    evas_object_inform_call_restack(obj);
@@ -172,15 +178,18 @@
      }
    obj->restack = 1;
    evas_object_change(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
-                                              obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1) &&
-                obj->cur.visible)
-              evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+            if (!obj->smart.smart)
+              {
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1) &&
+                     obj->cur.visible)
+                   evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+              }
          }
      }
    evas_object_inform_call_restack(obj);
@@ -226,15 +235,18 @@
      }
    obj->restack = 1;
    evas_object_change(obj);
-   if (!evas_event_passes_through(obj))
+   if (obj->layer->evas->events_frozen != 0)
      {
-       if (!obj->smart.smart)
+       if (!evas_event_passes_through(obj))
          {
-            if (evas_object_is_in_output_rect(obj,
-                                              obj->layer->evas->pointer.x,
-                                              obj->layer->evas->pointer.y, 1, 
1) &&
-                obj->cur.visible)
-              evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+            if (!obj->smart.smart)
+              {
+                 if (evas_object_is_in_output_rect(obj,
+                                                   obj->layer->evas->pointer.x,
+                                                   
obj->layer->evas->pointer.y, 1, 1) &&
+                     obj->cur.visible)
+                   evas_event_feed_mouse_move(obj->layer->evas, 
obj->layer->evas->pointer.x, obj->layer->evas->pointer.y, NULL);
+              }
          }
      }
    evas_object_inform_call_restack(obj);




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to