[gtk/gtk-3-24] Revert "gdk/wayland: go through monitor to compute scale factor"



commit e9fdb35687f4f395fb00225d0f87125f784a93c5
Author: Jonas Ådahl <jadahl gmail com>
Date:   Tue Sep 3 17:13:17 2019 +0200

    Revert "gdk/wayland: go through monitor to compute scale factor"
    
    This reverts commit 6d545b6d03caba8e7718a73c6e0abe35a4133fe0.
    
    Reverting as this broke multi DPI systems, where a client is expected to
    render at scale = 1 if it is only visible on a scale = 1 monitor.
    
    Fixes: https://gitlab.gnome.org/GNOME/gtk/issues/2129

 gdk/wayland/gdkwindow-wayland.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index be0b9681d6..1c62c8f65e 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -651,10 +651,11 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
 static void
 window_update_scale (GdkWindow *window)
 {
+  GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
   GdkWaylandDisplay *display_wayland =
     GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
   guint32 scale;
-  int i;
+  GSList *l;
 
   if (display_wayland->compositor_version < WL_SURFACE_HAS_BUFFER_SCALE)
     {
@@ -663,10 +664,10 @@ window_update_scale (GdkWindow *window)
     }
 
   scale = 1;
-  for (i = 0; i < display_wayland->monitors->len; i++)
+  for (l = impl->display_server.outputs; l != NULL; l = l->next)
     {
-      GdkWaylandMonitor *monitor = display_wayland->monitors->pdata[i];
-      int output_scale = gdk_monitor_get_scale_factor (GDK_MONITOR (monitor));
+      guint32 output_scale =
+        _gdk_wayland_screen_get_output_scale (display_wayland->screen, l->data);
       scale = MAX (scale, output_scale);
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]