diff options
author | okan | 2017-05-05 14:14:19 +0000 |
---|---|---|
committer | okan | 2017-05-05 14:14:19 +0000 |
commit | c44f7f8975b29c13365cb80c54a9b7f26fee3943 (patch) | |
tree | 82adb115e870252bc741b86c5ad65a2910f248da | |
parent | a43d7fb97d3e0d9463b75b78595ccf0eececa007 (diff) | |
download | cwm-c44f7f8975b29c13365cb80c54a9b7f26fee3943.tar.gz |
Ensure clients stay within the viewable bounds on placement, even with empty
borders; based on a patch from Vadim Vygonets.
-rw-r--r-- | client.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -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 <sys/types.h> @@ -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; |