mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-23 01:40:12 -05:00
--window-size-chars: ensure width/height are valid for current scaling factor
Before this patch, we didn’t ensure width and height were valid for the current scaling factor, when fractional scaling _is_ available. That is, we didn’t ensure the width/height values multiplied back to their original values after dividing with the scaling factor. Closes #1446
This commit is contained in:
parent
05131a9b0c
commit
1af0277564
2 changed files with 7 additions and 16 deletions
19
render.c
19
render.c
|
|
@ -3933,22 +3933,9 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
|||
width += 2 * term->conf->pad_x * scale;
|
||||
height += 2 * term->conf->pad_y * scale;
|
||||
|
||||
/*
|
||||
* Ensure we can scale to logical size, and back to
|
||||
* pixels without truncating.
|
||||
*/
|
||||
if (!term_fractional_scaling(term)) {
|
||||
xassert((int)ceilf(scale) == (int)scale);
|
||||
|
||||
int iscale = scale;
|
||||
if (width % iscale)
|
||||
width += iscale - width % iscale;
|
||||
if (height % iscale)
|
||||
height += iscale - height % iscale;
|
||||
|
||||
xassert(width % iscale == 0);
|
||||
xassert(height % iscale == 0);
|
||||
}
|
||||
/* Ensure width/height is a valid multiple of scale */
|
||||
width = roundf(scale * roundf(width / scale));
|
||||
height = roundf(scale * roundf(height / scale));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue