From c44f7f8975b29c13365cb80c54a9b7f26fee3943 Mon Sep 17 00:00:00 2001 From: okan Date: Fri, 5 May 2017 14:14:19 +0000 Subject: Ensure clients stay within the viewable bounds on placement, even with empty borders; based on a patch from Vadim Vygonets. --- client.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index f6f3d33..a163f4f 100644 --- a/client.c +++ b/client.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: client.c,v 1.239 2017/05/01 12:54:55 okan Exp $ + * $OpenBSD: client.c,v 1.240 2017/05/05 14:14:19 okan Exp $ */ #include @@ -761,14 +761,14 @@ client_placecalc(struct client_ctx *cc) wmax = DisplayWidth(X_Dpy, sc->which); hmax = DisplayHeight(X_Dpy, sc->which); - if (cc->geom.x + (cc->bwidth * 2) >= wmax) - cc->geom.x = wmax - (cc->bwidth * 2); - if (cc->geom.x + cc->geom.w - (cc->bwidth * 2) < 0) - cc->geom.x = -cc->geom.w; - if (cc->geom.y + (cc->bwidth * 2) >= hmax) - cc->geom.y = hmax - (cc->bwidth * 2); - if (cc->geom.y + cc->geom.h - (cc->bwidth * 2) < 0) - cc->geom.y = -cc->geom.h; + if (cc->geom.x >= wmax) + cc->geom.x = wmax - cc->bwidth - 1; + if (cc->geom.x + cc->geom.w + cc->bwidth <= 0) + cc->geom.x = -(cc->geom.w + cc->bwidth - 1); + if (cc->geom.y >= hmax) + cc->geom.x = hmax - cc->bwidth - 1; + if (cc->geom.y + cc->geom.h + cc->bwidth <= 0) + cc->geom.y = -(cc->geom.h + cc->bwidth - 1); } else { struct geom area; int xmouse, ymouse; -- cgit v1.2.3-2-gb3c3