From c75a8154c9a17d407c6c7ad228e28362bb69fc07 Mon Sep 17 00:00:00 2001 From: tasn Date: Wed, 13 Jun 2012 17:37:19 +0000 Subject: [PATCH] Revert "evas/event - Fixed incorrect events passing. Now child's repeat events does not affect to the parent's level." 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 | 5 ----- src/lib/canvas/evas_events.c | 44 +++++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index baac656..3949dec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -805,8 +805,3 @@ * 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. - diff --git a/src/lib/canvas/evas_events.c b/src/lib/canvas/evas_events.c index b86c536..02799c3 100644 --- a/src/lib/canvas/evas_events.c +++ b/src/lib/canvas/evas_events.c @@ -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)))) { -- 2.7.4