diff options
author | Yifan J <yfjiang@suse.com> | 2019-04-25 16:09:04 +0800 |
---|---|---|
committer | Carlos Garnacho <mrgarnacho@gmail.com> | 2019-07-29 18:46:10 +0000 |
commit | 25c7cc703118c69b224acf9c4f7af09a31f50a34 (patch) | |
tree | cb9dbfb035c2282a5ae731445476edf566d62da1 | |
parent | 65f6de3b127e28dc8d2d66145f721ba757afeca1 (diff) | |
download | gnome-settings-daemon-25c7cc703118c69b224acf9c4f7af09a31f50a34.tar.gz |
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.
-rw-r--r-- | plugins/xsettings/gsd-xsettings-manager.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/xsettings/gsd-xsettings-manager.c b/plugins/xsettings/gsd-xsettings-manager.c index 3b1ebc3a..c3ac7892 100644 --- a/plugins/xsettings/gsd-xsettings-manager.c +++ b/plugins/xsettings/gsd-xsettings-manager.c @@ -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", |