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



commit b24407e51fd8d8e47f490fa3b84c988cf00ec7f6
Author: Jehan <jehan girinstud io>
Date:   Sun Jun 21 19:09:25 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/gdkdisplay-wayland.c | 5 +++++
 1 file changed, 5 insertions(+)
---
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index cd8fe1e3cc..f1cc5a4dac 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -2379,12 +2379,17 @@ output_handle_done (void             *data,
                     struct wl_output *wl_output)
 {
   GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
+  int 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]