[gtk/wip/chergert/gdk-macos-for-master] inspector: handle differences in DPI between backends
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/gdk-macos-for-master] inspector: handle differences in DPI between backends
- Date: Tue, 17 Nov 2020 18:42:37 +0000 (UTC)
commit 37a8c138f9d3702cfb57ad3e543ee80542994773
Author: Christian Hergert <chergert redhat com>
Date: Tue Nov 17 10:45:25 2020 -0800
inspector: handle differences in DPI between backends
This fixes an issue on macOS where the text gets much larger once opening
the inspector.
gtk/inspector/visual.c | 46 ++++++++++++++++++++++------------------------
1 file changed, 22 insertions(+), 24 deletions(-)
---
diff --git a/gtk/inspector/visual.c b/gtk/inspector/visual.c
index fd082112e2..f3cb4695ac 100644
--- a/gtk/inspector/visual.c
+++ b/gtk/inspector/visual.c
@@ -52,6 +52,9 @@
#ifdef GDK_WINDOWING_WAYLAND
#include "wayland/gdkwayland.h"
#endif
+#ifdef GDK_WINDOWING_MACOS
+#include "macos/gdkmacos.h"
+#endif
#include "gdk/gdk-private.h"
@@ -173,34 +176,27 @@ redraw_everything (void)
}
static double
-get_font_scale (GtkInspectorVisual *vis)
+get_dpi_ratio (GtkInspectorVisual *vis)
{
-#ifdef GDK_WINDOWING_X11
- if (GDK_IS_X11_DISPLAY (vis->display))
- {
- int dpi_int;
-
- g_object_get (gtk_settings_get_for_display (vis->display),
- "gtk-xft-dpi", &dpi_int,
- NULL);
-
- return dpi_int / (96.0 * 1024.0);
- }
+#ifdef GDK_WINDOWING_MACOS
+ if (GDK_IS_MACOS_DISPLAY (vis->display))
+ return 72.0 * 1024.0;
#endif
-#ifdef GDK_WINDOWING_WAYLAND
- if (GDK_IS_WAYLAND_DISPLAY (vis->display))
- {
- int dpi_int;
- g_object_get (gtk_settings_get_for_display (vis->display),
- "gtk-xft-dpi", &dpi_int,
- NULL);
+ return 96.0 * 1024.0;
+}
- return dpi_int / (96.0 * 1024.0);
- }
-#endif
+static double
+get_font_scale (GtkInspectorVisual *vis)
+{
+ double ratio = get_dpi_ratio (vis);
+ int dpi_int;
+
+ g_object_get (gtk_settings_get_for_display (vis->display),
+ "gtk-xft-dpi", &dpi_int,
+ NULL);
- return 1.0;
+ return dpi_int / ratio;
}
static void
@@ -209,8 +205,10 @@ update_font_scale (GtkInspectorVisual *vis,
gboolean update_adjustment,
gboolean update_entry)
{
+ double ratio = get_dpi_ratio (vis);
+
g_object_set (gtk_settings_get_for_display (vis->display),
- "gtk-xft-dpi", (int)(factor * 96 * 1024),
+ "gtk-xft-dpi", (int)(factor * ratio),
NULL);
if (update_adjustment)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]