From 17b59f049c43d148c2d9484e2f1ddf61eff69c05 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: http://svn.enlightenment.org/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