diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index ab96154f1a..47e3d2afe4 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -2810,6 +2810,8 @@ settings_update_resolution (GtkSettings *settings) GtkSettingsPrivate *priv = settings->priv; gint dpi_int; gdouble dpi; + const char *scale_env; + double scale; g_object_get (settings, "gtk-xft-dpi", &dpi_int, @@ -2820,6 +2822,14 @@ settings_update_resolution (GtkSettings *settings) else dpi = -1.; + scale_env = g_getenv ("GDK_DPI_SCALE"); + if (scale_env) + { + scale = g_ascii_strtod (scale_env, NULL); + if (scale != 0 && dpi > 0) + dpi *= scale; + } + gdk_screen_set_resolution (priv->screen, dpi); }