From 77e0f02f7279a699590869e1a671ffdd05ff436c Mon Sep 17 00:00:00 2001 From: Tom Hacohen 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. SVN revision: 72093 --- legacy/evas/ChangeLog | 5 --- legacy/evas/src/lib/canvas/evas_events.c | 44 +++++++++++++----------- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog index baac65651e..3949decdab 100644 --- a/legacy/evas/ChangeLog +++ b/legacy/evas/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/legacy/evas/src/lib/canvas/evas_events.c b/legacy/evas/src/lib/canvas/evas_events.c index b86c536d8c..02799c3c73 100644 --- a/legacy/evas/src/lib/canvas/evas_events.c +++ b/legacy/evas/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)))) {