diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-11-17 19:24:47 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-11-17 19:24:47 +0000 |
commit | 6b475aacd26ca7f341670c97d1b5a5b30f560399 (patch) | |
tree | dad181b54b852a7d3b7dbaa3122f578014bf1e69 | |
parent | 1c7daece7ac987213c75bf320deaf0e884a39490 (diff) | |
parent | 37a8c138f9d3702cfb57ad3e543ee80542994773 (diff) | |
download | gtk+-6b475aacd26ca7f341670c97d1b5a5b30f560399.tar.gz |
Merge branch 'wip/chergert/gdk-macos-for-master' into 'master'
inspector: handle differences in DPI between backends
See merge request GNOME/gtk!2857
-rw-r--r-- | gtk/inspector/visual.c | 46 |
1 files 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) |