From: Junseok, Kim Date: Thu, 9 Jan 2020 01:48:33 +0000 (+0900) Subject: e_policy_visibility: crop ec's geom with e_zone geom X-Git-Tag: submit/tizen/20200114.081245~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a23be41c6d0466ab4e430d4fcb1ee355c4aed82d;p=platform%2Fupstream%2Fenlightenment.git e_policy_visibility: crop ec's geom with e_zone geom Change-Id: Id7ff0cc165d01fb72b82fe5ab99474e10c5b0413 --- diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index 9a9d744bd7..7493cb7d62 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -1647,6 +1647,10 @@ _e_vis_ec_above_visible_type(E_Client *ec, Eina_Bool check_child) int ex, ey, ew, eh; int ax, ay, aw, ah; int cx, cy, cw, ch; + int zx, zy, zw, zh; + + EINA_SAFETY_ON_NULL_RETURN_VAL(ec, E_POL_VIS_TYPE_ALPHA); + EINA_SAFETY_ON_NULL_RETURN_VAL(ec->zone, E_POL_VIS_TYPE_ALPHA); cx = ec->desk->geom.x; cy = ec->desk->geom.y; @@ -1654,11 +1658,15 @@ _e_vis_ec_above_visible_type(E_Client *ec, Eina_Bool check_child) ch = ec->desk->geom.h; e_client_geometry_get(ec, &ex, &ey, &ew, &eh); + e_zone_useful_geometry_get(ec->zone, &zx, &zy, &zw, &zh); // check whether ec is out of its container or not if (!E_INTERSECTS(ex, ey, ew, eh, cx, cy, cw, ch)) return E_POL_VIS_TYPE_NON_ALPHA; + // crop ec size with zone size + E_RECTS_CLIP_TO_RECT(ex, ey, ew, eh, zx, zy, zw, zh); + for (above = e_client_above_get(ec); above; above = e_client_above_get(above)) { if (e_client_util_ignored_get(above)) continue;