Moving full screen window between mixedDPI monitors causes incorrect window size after move under wayland
Steps to reproduce
- Connect a second display and configure it as 'Join displays' to a 200% scale in gnome settings > Displays. Ensure the scale of the primary display is set to 100%.
- Launch a (GTK) application and ensure it is running under Wayland: e.g. gnome-terminal
- Make the app full screen using Super+Up
- Move the full screen window between the primary and secondary display via Super Up/Dn or Super Left/Right (depending on your display setup).
Current behavior
- When moving the full screen window from the 100% monitor to the 200% monitor, the window spans both monitors. Additionally it is oversized so parts of the window are not drawn. For an Up/Down monitor setup, I estimate that the top left part of the original full screen window is drawn on the top monitor and a section of the middle of the original full screen window is drawn on the bottom monitor. See the attached screenshot. Toggling the full screen state (Super Up and Super Dn) correctly resizes the window to be full screen on the 200% monitor.
- When moving the full screen window from the 200% monitor to the 100% monitor, the window does not span the entire 100% monitor. It only spans the upper left quarter of the 100% monitor. See screenshot 2 (for some reason this file is 10MB). Note that the compositor believes the state of window is still full screen as pressing Super+Up does not make the window full screen. Instead I have to toggle the full screen state (by pressing Super+Dn followed by Super+Up) to make the window span the entire monitor.
Expected behavior
The window should span the entire screen after moving it. Users shouldn't have to toggle the full screen state of the window.
Additional information
When the external monitor is set to 100% scale, full screen windows are drawn to the correct size after moving between monitors. I tried testing using a weston to rule out mutter (perhaps this is a bug in gtk), but couldn't setup 200% scaling and didn't know how to move windows between monitors without dragging in weston.
Linux 5.2.13-arch1-1-ARCH x86_64
mesa 19.1.6-1
mutter 3.32.2+43+gb7f158811-1
GNOME Shell 3.32.2
Intel Corporation UHD Graphics 620 (rev 07) with xf86-video-intel 1:2.99.917+870+g6f4972d5-1