term: default to DPI 96, if the monitor's DPI is 0

This can happen in virtualized environments, or when running a nested
Wayland session.
This commit is contained in:
Daniel Eklöf 2024-04-20 08:18:41 +02:00
parent acbb3cbb70
commit 128c5c3efa
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 13 additions and 4 deletions

View file

@ -58,6 +58,12 @@
### Deprecated ### Deprecated
### Removed ### Removed
### Fixed ### Fixed
* Crash when zooming in or out, with `dpi-aware=yes`, and the
monitor's DPI is 0 (this is true for, for example, nested Wayland
sessions, or in virtualized environments).
### Security ### Security
### Contributors ### Contributors

View file

@ -878,10 +878,13 @@ get_font_dpi(const struct terminal *term)
mon = &tll_front(term->wl->monitors); mon = &tll_front(term->wl->monitors);
} }
if (term_fractional_scaling(term)) const float monitor_dpi = mon != NULL
return mon != NULL ? mon->dpi.physical : 96.; ? term_fractional_scaling(term)
else ? mon->dpi.physical
return mon != NULL ? mon->dpi.scaled : 96.; : mon->dpi.scaled
: 96.;
return monitor_dpi > 0. ? monitor_dpi : 96.;
} }
static enum fcft_subpixel static enum fcft_subpixel