Evas masking: Implement event masking support

In case the clipper is a mask object, we should use precise
event masking. By default precise_is_inside is not enabled
because it is expensive, but it should probably be set by
the application when they use masks as clippers.

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
This commit is contained in:
Jaeun Choi 2014-11-13 10:50:00 +09:00 committed by Jean-Philippe Andre
parent 73919ea437
commit 6e8e5e89b5
1 changed files with 5 additions and 1 deletions

View File

@ -122,7 +122,11 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
}
else
{
inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1);
Evas_Object_Protected_Data *clip = obj->cur->clipper;
if (clip && clip->mask->is_mask && clip->precise_is_inside)
inside = evas_object_is_inside(clip->object, clip, x, y);
else
inside = evas_object_is_in_output_rect(eo_obj, obj, x, y, 1, 1);
if (inside)
{