Revert "evas/event - Fixed incorrect events passing. Now child's repeat events does...
authortasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 13 Jun 2012 17:37:19 +0000 (17:37 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 13 Jun 2012 17:37:19 +0000 (17:37 +0000)
This reverts commit 72080.

It broke everything. EFM stopped responding to mouse clicks, same with
clouseau. Seriously, completely broken.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@72093 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
src/lib/canvas/evas_events.c

index baac656..3949dec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
         * Fix crash in evas_object_image_add() when called prior to setting an engine
           for the given canvas.
-
-2012-06-13  ChunEon Park (Hermet)
-
-       * Fixed incorrect events passing. Now child's repeat events does not affect to the parent's level.
-
index b86c536..02799c3 100644 (file)
@@ -43,13 +43,14 @@ _evas_event_object_list_raw_in_get(Evas *e, Eina_List *in,
             (!obj->clip.clipees) &&
             (evas_object_clippers_is_visible(obj)))
           {
-             inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
-
              if (obj->smart.smart)
                {
+                  int norep = 0;
+
                   if ((obj->cur.usemap) && (obj->cur.map) &&
                       (obj->cur.map->count == 4))
                     {
+                       inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
                        if (inside)
                          {
                             if (!evas_map_coords_get(obj->cur.map, x, y,
@@ -66,7 +67,7 @@ _evas_event_object_list_raw_in_get(Evas *e, Eina_List *in,
                                      stop,
                                      obj->cur.geometry.x + obj->cur.map->mx,
                                      obj->cur.geometry.y + obj->cur.map->my,
-                                     no_rep);
+                                     &norep);
                               }
                          }
                     }
@@ -85,32 +86,33 @@ _evas_event_object_list_raw_in_get(Evas *e, Eina_List *in,
                             obj->cur.geometry.y + obj->cur.geometry.h >= y))
                          in = _evas_event_object_list_in_get
                             (e, in, evas_object_smart_members_get_direct(obj),
-                            stop, x, y, no_rep);
+                            stop, x, y, &norep);
+                    }
+                  if (norep)
+                    {
+                       if (!obj->repeat_events)
+                         {
+                            *no_rep = 1;
+                            return in;
+                         }
                     }
-
-                  if (inside && ((!obj->precise_is_inside) ||
-                                 (evas_object_is_inside(obj, x, y))))
-                    if (!obj->repeat_events)
-                      {
-                         *no_rep = 1;
-                         return in;
-                      }
                }
              else
                {
-                  if (inside)
+                  inside = evas_object_is_in_output_rect(obj, x, y, 1, 1);
+
+                  if ((obj->cur.usemap) && (obj->cur.map) &&
+                      (obj->cur.map->count == 4))
                     {
-                       if ((obj->cur.usemap) && (obj->cur.map) &&
-                           (obj->cur.map->count == 4))
+                       if ((inside) &&
+                           (!evas_map_coords_get(obj->cur.map, x, y,
+                                                 &(obj->cur.map->mx),
+                                                 &(obj->cur.map->my), 0)))
                          {
-                            if (!evas_map_coords_get(obj->cur.map, x, y,
-                                                     &(obj->cur.map->mx),
-                                                     &(obj->cur.map->my), 0))
-                              {
-                                 inside = 0;
-                              }
+                            inside = 0;
                          }
                     }
+
                   if (inside && ((!obj->precise_is_inside) ||
                                  (evas_object_is_inside(obj, x, y))))
                     {