[gtk+/wip/window-scales] x11: Add Gdk/UnscaledDPI to override Xft/DPI
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/window-scales] x11: Add Gdk/UnscaledDPI to override Xft/DPI
- Date: Fri, 28 Jun 2013 11:26:25 +0000 (UTC)
commit 1e31befc1aa65cae82df5b6b690ac8a433da44b1
Author: Alexander Larsson <alexl redhat com>
Date: Fri Jun 28 13:23:45 2013 +0200
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.
gdk/x11/gdksettings.c | 3 ++-
gdk/x11/xsettings-client.c | 13 +++++++++++++
2 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/gdk/x11/gdksettings.c b/gdk/x11/gdksettings.c
index b49f2d2..320457f 100644
--- a/gdk/x11/gdksettings.c
+++ b/gdk/x11/gdksettings.c
@@ -66,7 +66,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 *
diff --git a/gdk/x11/xsettings-client.c b/gdk/x11/xsettings-client.c
index 4cafb93..475cbab 100644
--- a/gdk/x11/xsettings-client.c
+++ b/gdk/x11/xsettings-client.c
@@ -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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]