mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-25 01:40:19 -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]).
|
auto-detection ([#1465][1465]).
|
||||||
* Crash when `XDG_ACTIVATION_TOKEN` is set, but compositor does not
|
* Crash when `XDG_ACTIVATION_TOKEN` is set, but compositor does not
|
||||||
support XDG activation ([#1493][1493]).
|
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
|
[1436]: https://codeberg.org/dnkl/foot/issues/1436
|
||||||
[1464]: https://codeberg.org/dnkl/foot/issues/1464
|
[1464]: https://codeberg.org/dnkl/foot/issues/1464
|
||||||
[1465]: https://codeberg.org/dnkl/foot/issues/1465
|
[1465]: https://codeberg.org/dnkl/foot/issues/1465
|
||||||
[1493]: https://codeberg.org/dnkl/foot/pulls/1493
|
[1493]: https://codeberg.org/dnkl/foot/pulls/1493
|
||||||
|
[1498]: https://codeberg.org/dnkl/foot/issues/1498
|
||||||
|
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
|
||||||
|
|
@ -826,9 +826,9 @@ get_font_dpi(const struct terminal *term)
|
||||||
: &tll_front(term->wl->monitors);
|
: &tll_front(term->wl->monitors);
|
||||||
|
|
||||||
if (term_fractional_scaling(term))
|
if (term_fractional_scaling(term))
|
||||||
return mon->dpi.physical;
|
return mon != NULL ? mon->dpi.physical : 96.;
|
||||||
else
|
else
|
||||||
return mon->dpi.scaled;
|
return mon != NULL ? mon->dpi.scaled : 96.;
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum fcft_subpixel
|
static enum fcft_subpixel
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue