[gnome-settings-daemon] xsettings: Round the Xft.dpi setting to an integer



commit 25c7cc703118c69b224acf9c4f7af09a31f50a34
Author: Yifan J <yfjiang suse com>
Date:   Thu Apr 25 16:09:04 2019 +0800

    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.

 plugins/xsettings/gsd-xsettings-manager.c | 4 ++--
 1 file 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",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]