evas: make top object returning functions return the top object

this previously just returned the top clipper at the specified points

@fix
This commit is contained in:
Mike Blumenkrantz 2017-08-18 15:24:51 -04:00
parent 829cc94aee
commit 850bba4986
1 changed files with 18 additions and 3 deletions

View File

@ -2254,7 +2254,11 @@ _evas_canvas_object_top_at_xy_get(Eo *eo_e EINA_UNUSED, Evas_Public_Data *e, Eva
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, 1, 1)) &&
(!obj->clip.clipees)) return eo_obj;
(!obj->clip.clipees) &&
RECTS_INTERSECT(xx, yy, 1, 1,
obj->cur->geometry.x, obj->cur->geometry.y,
obj->cur->geometry.w, obj->cur->geometry.h))
return eo_obj;
}
}
return NULL;
@ -2303,7 +2307,10 @@ _evas_canvas_object_top_in_rectangle_get(Eo *eo_e EINA_UNUSED, Evas_Public_Data
if ((!include_hidden_objects) && (!obj->cur->visible)) continue;
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees)) return eo_obj;
(!obj->clip.clipees) &&
RECTS_INTERSECT(xx, yy, ww, hh,
obj->cur->geometry.x, obj->cur->geometry.y,
obj->cur->geometry.w, obj->cur->geometry.h)) return eo_obj;
}
}
return NULL;
@ -2399,7 +2406,15 @@ _evas_canvas_objects_in_rectangle_get(Eo *eo_e EINA_UNUSED, Evas_Public_Data *e,
evas_object_clip_recalc(obj);
if ((evas_object_is_in_output_rect(eo_obj, obj, xx, yy, ww, hh)) &&
(!obj->clip.clipees))
in = eina_list_prepend(in, eo_obj);
{
if (!RECTS_INTERSECT(xx, yy, ww, hh,
obj->cur->geometry.x,
obj->cur->geometry.y,
obj->cur->geometry.w,
obj->cur->geometry.h))
continue;
in = eina_list_prepend(in, eo_obj);
}
}
}
return in;