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
This commit is contained in:
Tom Hacohen 2012-06-13 17:37:19 +00:00
parent 4804a53214
commit 77e0f02f72
2 changed files with 23 additions and 26 deletions

View File

@ -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.

View 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))))
{