Evas masking: Fix precise_is_inside for masked smart objects

The flag should be set on the mask itself.
Checking for (x,y) being inside the mask can be an expensive operation,
so further optimization will be required.
This commit is contained in:
Jean-Philippe Andre 2015-01-16 11:45:28 +09:00
parent 836650e364
commit 6b81f4f220
1 changed files with 5 additions and 0 deletions

View File

@ -63,8 +63,13 @@ _evas_event_object_list_raw_in_get(Evas *eo_e, Eina_List *in,
{
if (obj->is_smart)
{
Evas_Object_Protected_Data *clip = obj->cur->clipper;
int norep = 0;
if (clip && clip->mask->is_mask && clip->precise_is_inside)
if (!evas_object_is_inside(clip->object, clip, x, y))
continue;
if ((obj->map->cur.usemap) && (obj->map->cur.map) &&
(obj->map->cur.map->count == 4))
{