1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Fix crash if display resolution is not set (#7950)

On my wayland / gnome3 setup DisplayHeightMM() returns 0. This resulted in a
misleading startup error suggesting to fix my font paths.
This commit is contained in:
Martin Renold 2018-12-08 16:26:04 +01:00 committed by Loïc Blot
parent f0dca284b3
commit b02effdab9
2 changed files with 14 additions and 12 deletions

View file

@ -624,20 +624,17 @@ static float calcDisplayDensity()
if (x11display != NULL) {
/* try x direct */
float dpi_height = floor(
DisplayHeight(x11display, 0) /
(DisplayHeightMM(x11display, 0) *
0.039370) +
0.5);
float dpi_width = floor(
DisplayWidth(x11display, 0) /
(DisplayWidthMM(x11display, 0) *
0.039370) +
0.5);
int dh = DisplayHeight(x11display, 0);
int dw = DisplayWidth(x11display, 0);
int dh_mm = DisplayHeightMM(x11display, 0);
int dw_mm = DisplayWidthMM(x11display, 0);
XCloseDisplay(x11display);
return std::max(dpi_height, dpi_width) / 96.0;
if (dh_mm != 0 && dw_mm != 0) {
float dpi_height = floor(dh / (dh_mm * 0.039370) + 0.5);
float dpi_width = floor(dw / (dw_mm * 0.039370) + 0.5);
return std::max(dpi_height, dpi_width) / 96.0;
}
}
}