[gtk/wip/Jehan/wrong-monitor-wayland] gdk: Wayland output `done()` listener not scale factor aware.



commit 2a22fbf564a5b2ca794bb7b6f2ec038248a3bec0
Author: Jehan <jehan girinstud io>
Date:   Sun Jun 21 18:32:30 2020 +0200

    gdk: Wayland output `done()` listener not scale factor aware.
    
    As can be seen on other Wayland handlers, GdkWaylandMonitor width and
    height are in device pixels whereas we are saving GdkMonitor size in
    application pixels.

 gdk/wayland/gdkscreen-wayland.c | 5 +++++
 1 file changed, 5 insertions(+)
---
diff --git a/gdk/wayland/gdkscreen-wayland.c b/gdk/wayland/gdkscreen-wayland.c
index cb60d3a0fd..4d6d1fa354 100644
--- a/gdk/wayland/gdkscreen-wayland.c
+++ b/gdk/wayland/gdkscreen-wayland.c
@@ -1607,12 +1607,17 @@ output_handle_done (void             *data,
                     struct wl_output *wl_output)
 {
   GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
+  gint               scale;
 
   GDK_NOTE (MISC,
             g_message ("handle done output %d", monitor->id));
 
   monitor->wl_output_done = TRUE;
 
+  scale = gdk_monitor_get_scale_factor (GDK_MONITOR (monitor));
+  monitor->width = monitor->width / scale;
+  monitor->height = monitor->height / scale;
+
   if (!should_expect_xdg_output_done (monitor) || monitor->xdg_output_done)
     apply_monitor_change (monitor);
 }


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