From fbe1f956e5e6aadb5e7dfb2e6dd760d444ea2fe1 Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 12 Nov 2015 18:33:30 +0000 Subject: If a client sets hints, honor them for kb resize requests, just like we do for mouse based resize requests. Based on a patch from Vadim Vygonets. --- client.c | 4 +++- kbfunc.c | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/client.c b/client.c index ec46e39..0f70675 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.213 2015/11/11 14:22:01 okan Exp $ + * $OpenBSD: client.c,v 1.214 2015/11/12 18:33:30 okan Exp $ */ #include @@ -839,6 +839,8 @@ client_getsizehints(struct client_ctx *cc) } cc->hint.incw = MAX(1, cc->hint.incw); cc->hint.inch = MAX(1, cc->hint.inch); + cc->hint.minw = MAX(1, cc->hint.minw); + cc->hint.minh = MAX(1, cc->hint.minh); if (size.flags & PAspect) { if (size.min_aspect.x > 0) diff --git a/kbfunc.c b/kbfunc.c index 0ba60c4..b8c8e85 100644 --- a/kbfunc.c +++ b/kbfunc.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: kbfunc.c,v 1.123 2015/11/12 18:26:41 okan Exp $ + * $OpenBSD: kbfunc.c,v 1.124 2015/11/12 18:33:30 okan Exp $ */ #include @@ -143,10 +143,10 @@ kbfunc_client_resize(struct client_ctx *cc, union arg *arg) kbfunc_amount(arg->i, &mx, &my); - if ((cc->geom.w += mx) < 1) - cc->geom.w = 1; - if ((cc->geom.h += my) < 1) - cc->geom.h = 1; + if ((cc->geom.w += mx * cc->hint.incw) < cc->hint.minw) + cc->geom.w = cc->hint.minw; + if ((cc->geom.h += my * cc->hint.inch) < cc->hint.minh) + cc->geom.h = cc->hint.minh; client_resize(cc, 1); /* Make sure the pointer stays within the window. */ -- cgit v1.2.3-2-gb3c3