mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
term: get_font_dpi(): don't crash when there aren't any available monitors
Seen on plasma; monitor is turned off, and then back on again. Before the "new" output global is emitted, the compositor calls fractional_scale::preferred_scale(). This results in a call to get_font_dpi(), where we crash, since it assumes there is at least one monitor available. Fix by falling back to a DPI of 96. Hopefully closes #1498
This commit is contained in:
parent
400a3f5ad2
commit
b95a7cb84f
2 changed files with 6 additions and 2 deletions
|
|
@ -106,11 +106,15 @@
|
|||
auto-detection ([#1465][1465]).
|
||||
* Crash when `XDG_ACTIVATION_TOKEN` is set, but compositor does not
|
||||
support XDG activation ([#1493][1493]).
|
||||
* Crash when compositor calls `fractional_scale::preferred_scale()`
|
||||
when there are no monitors (for example, after a monitor has been
|
||||
turned off and then back on again) ([#1498][1498]).
|
||||
|
||||
[1436]: https://codeberg.org/dnkl/foot/issues/1436
|
||||
[1464]: https://codeberg.org/dnkl/foot/issues/1464
|
||||
[1465]: https://codeberg.org/dnkl/foot/issues/1465
|
||||
[1493]: https://codeberg.org/dnkl/foot/pulls/1493
|
||||
[1498]: https://codeberg.org/dnkl/foot/issues/1498
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
|
|
@ -826,9 +826,9 @@ get_font_dpi(const struct terminal *term)
|
|||
: &tll_front(term->wl->monitors);
|
||||
|
||||
if (term_fractional_scaling(term))
|
||||
return mon->dpi.physical;
|
||||
return mon != NULL ? mon->dpi.physical : 96.;
|
||||
else
|
||||
return mon->dpi.scaled;
|
||||
return mon != NULL ? mon->dpi.scaled : 96.;
|
||||
}
|
||||
|
||||
static enum fcft_subpixel
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue