From b6214b9846aebee7616df2ef21a925989024d390 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 7 Jan 2016 17:27:36 -0500 Subject: [PATCH] check all corners of an object in e_comp_object_util_zone_get() if the top left corner is offscreen, checking other corners is still valid for returning a useful zone --- src/bin/e_comp_object.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 4a9f69c1c..3f850c9b3 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2927,12 +2927,18 @@ e_comp_object_util_zone_get(Evas_Object *obj) zone = cw->ec->zone; if (!zone) { - int x, y; + int x, y, w, h; if (e_win_client_get(obj)) return e_win_client_get(obj)->zone; - evas_object_geometry_get(obj, &x, &y, NULL, NULL); + evas_object_geometry_get(obj, &x, &y, &w, &h); zone = e_comp_zone_xy_get(x, y); + if (zone) return zone; + zone = e_comp_zone_xy_get(x + w, y + h); + if (zone) return zone; + zone = e_comp_zone_xy_get(x + w, y); + if (zone) return zone; + zone = e_comp_zone_xy_get(x, y + h); } return zone; }