From b24407e51fd8d8e47f490fa3b84c988cf00ec7f6 Mon Sep 17 00:00:00 2001 From: Jehan Date: Sun, 21 Jun 2020 19:09:25 +0200 Subject: [PATCH] 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); }