From 1dae5ba3ed4d786c3e47cc9abe35f5f2e0936497 Mon Sep 17 00:00:00 2001 From: Guido Cella Date: Wed, 16 Sep 2026 11:27:58 +0200 Subject: [PATCH] size hints can be -1 --- client.h | 4 ++-- dwl.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client.h b/client.h index 5d76b13..dc0615e 100644 --- a/client.h +++ b/client.h @@ -248,12 +248,12 @@ client_is_float_type(Client *c) return 1; } - return min.width && min.height && + return min.width > 0 && min.height > 0 && (min.width == max.width || min.height == max.height); } #endif - return c->surface.xdg->toplevel->parent || (min.width && min.height && + return c->surface.xdg->toplevel->parent || (min.width > 0 && min.height > 0 && (min.width == max.width || min.height == max.height)); } diff --git a/dwl.c b/dwl.c index a2418d0..156660f 100644 --- a/dwl.c +++ b/dwl.c @@ -491,9 +491,9 @@ applybounds(Client *c, struct wlr_box *bbox) c->geom.height = MAX(min.height + 2 * (int)c->bw, c->geom.height); /* Some clients set their max size to INT_MAX, which does not violate the * protocol but it's unnecesary, as they can set their max size to zero. */ - if (max.width && 2 * (int)c->bw <= INT_MAX - max.width) /* Checks for overflow */ + if (max.width > 0 && 2 * (int)c->bw <= INT_MAX - max.width) /* Checks for overflow */ c->geom.width = MIN(max.width + 2 * (int)c->bw, c->geom.width); - if (max.height && 2 * (int)c->bw <= INT_MAX - max.height) /* Checks for overflow */ + if (max.height > 0 && 2 * (int)c->bw <= INT_MAX - max.height) /* Checks for overflow */ c->geom.height = MIN(max.height + 2 * (int)c->bw, c->geom.height); }