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.
This commit is contained in:
okan 2015-11-12 18:33:30 +00:00
parent db0907a53d
commit 6e55f9d89b
2 changed files with 8 additions and 6 deletions

View File

@ -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 <sys/types.h>
@ -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)

View File

@ -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 <sys/types.h>
@ -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. */