mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
x11: Add Gdk/UnscaledDPI to override Xft/DPI
This lets use use a scaled Xft/DPI for old apps while not blowing up the size of scaled windows. Only apps supporting Gdk/WindowScaleFactor should supprt Gdk/UnscaledDPI.
This commit is contained in:
parent
d89a98e31e
commit
4b9c08f48d
@ -63,7 +63,8 @@ static const struct {
|
||||
|
||||
/* These are here in order to be recognized, but are not sent to
|
||||
gtk as they are handled internally by gdk: */
|
||||
{"Gdk/WindowScalingFactor", "gdk-window-scaling-factor"}
|
||||
{"Gdk/WindowScalingFactor", "gdk-window-scaling-factor"},
|
||||
{"Gdk/UnscaledDPI", "gdk-unscaled-dpi"}
|
||||
};
|
||||
|
||||
static const char *
|
||||
|
@ -410,6 +410,7 @@ read_settings (GdkX11Screen *x11_screen,
|
||||
|
||||
GHashTable *old_list = x11_screen->xsettings;
|
||||
GValue value = G_VALUE_INIT;
|
||||
GValue *setting, *copy;
|
||||
|
||||
x11_screen->xsettings = NULL;
|
||||
|
||||
@ -443,6 +444,18 @@ read_settings (GdkX11Screen *x11_screen,
|
||||
}
|
||||
}
|
||||
|
||||
/* Since we support scaling we look at the specific Gdk/UnscaledDPI
|
||||
setting if it exists and use that instead of Xft/DPI if it is set */
|
||||
setting = g_hash_table_lookup (x11_screen->xsettings, "gdk-unscaled-dpi");
|
||||
if (setting)
|
||||
{
|
||||
copy = g_new0 (GValue, 1);
|
||||
g_value_init (copy, G_VALUE_TYPE (setting));
|
||||
g_value_copy (setting, copy);
|
||||
g_hash_table_insert (x11_screen->xsettings,
|
||||
"gtk-xft-dpi", copy);
|
||||
}
|
||||
|
||||
if (do_notify)
|
||||
notify_changes (x11_screen, old_list);
|
||||
if (old_list)
|
||||
|
Loading…
Reference in New Issue
Block a user