render: make sure ‘maximized’ button doesn’t use negative coordinates

This commit is contained in:
Daniel Eklöf 2021-12-22 20:31:38 +01:00
parent 521bd84a99
commit 41f7f8b7fa
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 7 additions and 1 deletions

View file

@ -64,6 +64,8 @@
(https://codeberg.org/dnkl/foot/issues/844).
* Crash when setting a key- or mouse binding to the empty string
(https://codeberg.org/dnkl/foot/issues/851).
* Crash when maximizing the window and `[csd].size=1`
(https://codeberg.org/dnkl/foot/issues/857).
### Security

View file

@ -1887,11 +1887,15 @@ render_csd_button_maximize_maximized(
const int max_width = buf->width / 3;
int width = min(max_height, max_width);
int thick = 1 * term->scale;
int thick = min(width / 2, 1 * term->scale);
const int x_margin = (buf->width - width) / 2;
const int y_margin = (buf->height - width) / 2;
xassert(x_margin + width - thick >= 0);
xassert(width - 2 * thick >= 0);
xassert(y_margin + width - thick >= 0);
pixman_image_fill_rectangles(
PIXMAN_OP_SRC, buf->pix[0], &color, 4,
(pixman_rectangle16_t[]){