mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-04-16 08:21:20 -04:00
wayland: force monitor DPI to 96 when it’s unreasonably high
If an output has a bogus physical width or height, the DPI can become so high that the cell width/height is too large for pixman_image_fill_rectangles(), resulting in a crash in pixman_fill(). Since it doesn’t make any sense to use a DPI that is obviously bogus, don’t. Force it 96 instead.
This commit is contained in:
parent
2910ca354c
commit
42c6af0914
2 changed files with 9 additions and 0 deletions
|
|
@ -409,6 +409,14 @@ output_update_ppi(struct monitor *mon)
|
|||
|
||||
double px_diag = sqrt(pow(scaled_width, 2) + pow(scaled_height, 2));
|
||||
mon->dpi = px_diag / mon->inch * mon->scale;
|
||||
|
||||
if (mon->dpi > 1000) {
|
||||
if (mon->name != NULL) {
|
||||
LOG_WARN("%s: DPI=%f is unreasonable, using 96 instead",
|
||||
mon->name, mon->dpi);
|
||||
}
|
||||
mon->dpi = 96;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue