From adc3c5ac81131b3a6b6e80c8f3f228623cbdfb6c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 22 Jan 2018 14:18:03 -0500 Subject: [PATCH] clamp large windows to desk's useful geometry if smart placement fails in the case where a window does not place with the smart placement algorithm, clamp position to the top-left available position within the useful geometry so that the titlebar will always be visible --- src/bin/e_place.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bin/e_place.c b/src/bin/e_place.c index 4c73594a4..ff56ac69f 100644 --- a/src/bin/e_place.c +++ b/src/bin/e_place.c @@ -418,9 +418,11 @@ done: E_FREE(a_x); E_FREE(a_y); - if ((*rx + w) > desk->zone->x + desk->zone->w) *rx = desk->zone->x + desk->zone->w - w; + e_zone_desk_useful_geometry_get(desk->zone, desk, &zx, &zy, &zw, &zh); + + if ((*rx + w) > zx + zw) *rx = zx + zw - w; if (*rx < zx) *rx = zx; - if ((*ry + h) > desk->zone->y + desk->zone->h) *ry = desk->zone->y + desk->zone->h - h; + if ((*ry + h) > zy + zh) *ry = zy + zh - h; if (*ry < zy) *ry = zy; // printf("0 - PLACE %i %i | %ix%i\n", *rx, *ry, w, h);