~ruther/dwl

a7f77160d1b36029b496384087c0d71d27d73079 — Leonardo Hernández Hernández 2 years ago 7a343b9
don't respect size hints for fullscreen clients

Fixes: #292
1 files changed, 11 insertions(+), 9 deletions(-)

M dwl.c
M dwl.c => dwl.c +11 -9
@@ 383,15 383,17 @@ struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
void
applybounds(Client *c, struct wlr_box *bbox)
{
	struct wlr_box min = {0}, max = {0};
	client_get_size_hints(c, &max, &min);
	/* try to set size hints */
	c->geom.width = MAX(min.width + (2 * c->bw), c->geom.width);
	c->geom.height = MAX(min.height + (2 * c->bw), c->geom.height);
	if (max.width > 0 && !(2 * c->bw > INT_MAX - max.width)) // Checks for overflow
		c->geom.width = MIN(max.width + (2 * c->bw), c->geom.width);
	if (max.height > 0 && !(2 * c->bw > INT_MAX - max.height)) // Checks for overflow
		c->geom.height = MIN(max.height + (2 * c->bw), c->geom.height);
	if (!c->isfullscreen) {
		struct wlr_box min = {0}, max = {0};
		client_get_size_hints(c, &max, &min);
		/* try to set size hints */
		c->geom.width = MAX(min.width + (2 * c->bw), c->geom.width);
		c->geom.height = MAX(min.height + (2 * c->bw), c->geom.height);
		if (max.width > 0 && !(2 * c->bw > INT_MAX - max.width)) // Checks for overflow
			c->geom.width = MIN(max.width + (2 * c->bw), c->geom.width);
		if (max.height > 0 && !(2 * c->bw > INT_MAX - max.height)) // Checks for overflow
			c->geom.height = MIN(max.height + (2 * c->bw), c->geom.height);
	}

	if (c->geom.x >= bbox->x + bbox->width)
		c->geom.x = bbox->x + bbox->width - c->geom.width;

Do not follow this link