Commit 25c7cc70 authored by Yifan J's avatar Yifan J Committed by Carlos Garnacho

xsettings: Round the Xft.dpi setting to an integer

When using gnome-tweaks to set a text scale factor that is not a
multiple of 0.25 (e.g. 1.1), Xft.dpi would be calculated as a
floating point number, which breaks the fdo spec:

https://www.freedesktop.org/wiki/Specifications/XSettingsRegistry/

Although GNOME could handle the floating point Xft.dpi, graphical
programs restrictively followed the above-mentioned spec would be
influenced negatively. For example, QT applications (running on
GNOME desktop) may ignore text scaling factor when Xft.dpi was
calculated as a floating point number:

https://bugreports.qt.io/browse/QTBUG-64738

The patch at the same time has few impact to GNOME itself.
parent 65f6de3b
Pipeline #99798 passed with stages
in 3 minutes and 57 seconds
......@@ -814,8 +814,8 @@ xft_settings_set_xresources (GsdXftSettings *settings)
g_debug("xft_settings_set_xresources: orig res '%s'", add_string->str);
update_property (add_string, "Xft.dpi",
g_ascii_dtostr (dpibuf, sizeof (dpibuf), (double) settings->scaled_dpi / 1024.0));
g_snprintf (dpibuf, sizeof (dpibuf), "%d", (int) (settings->scaled_dpi / 1024.0 + 0.5));
update_property (add_string, "Xft.dpi", dpibuf);
update_property (add_string, "Xft.antialias",
settings->antialias ? "1" : "0");
update_property (add_string, "Xft.hinting",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment