Fix comparison between signed and unsigned int
When c->bw is 0, the right side of the MAX functions gets turned into an unsigned integer and that results in -1 being the outcome. This causes big issues in xwayland clients.
This commit is contained in:
parent
569f554016
commit
87d87cc404
4
dwl.c
4
dwl.c
@ -389,8 +389,8 @@ applybounds(Client *c, struct wlr_box *bbox)
|
|||||||
struct wlr_box min = {0}, max = {0};
|
struct wlr_box min = {0}, max = {0};
|
||||||
client_get_size_hints(c, &max, &min);
|
client_get_size_hints(c, &max, &min);
|
||||||
/* try to set size hints */
|
/* try to set size hints */
|
||||||
c->geom.width = MAX(min.width + (2 * c->bw), c->geom.width);
|
c->geom.width = MAX(min.width + (2 * (int)c->bw), c->geom.width);
|
||||||
c->geom.height = MAX(min.height + (2 * c->bw), c->geom.height);
|
c->geom.height = MAX(min.height + (2 * (int)c->bw), c->geom.height);
|
||||||
/* Some clients set them max size to INT_MAX, which does not violates
|
/* Some clients set them max size to INT_MAX, which does not violates
|
||||||
* the protocol but its innecesary, they can set them max size to zero. */
|
* the protocol but its innecesary, they can set them max size to zero. */
|
||||||
if (max.width > 0 && !(2 * c->bw > INT_MAX - max.width)) /* Checks for overflow */
|
if (max.width > 0 && !(2 * c->bw > INT_MAX - max.width)) /* Checks for overflow */
|
||||||
|
Loading…
Reference in New Issue
Block a user