From 09eb525863ab6c08fd743a637f7da9d10c0c01eb Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 15 Jan 2020 14:36:45 +0100 Subject: [PATCH xserver 19/24] xwayland: Also check resolution-change-emulation when the xwl_window itself moves The recent change to use the top-level non-window-manager Window drawable coordinates from xwl_window_check_resolution_change_emulation() in combination with only calling it on a resize when the top-level window is moved breaks things with mutter/gnome-shell. When fullscreening a X11 window, mutter moves its window-decoration Window wrapping the top-level Window to the monitor's origin coordinates (e.g. 0x0) last. This updates the top-level's drawable coordinates, but as the actual MoveWindow is called on the wrapper Window and not on the toplevel we do not call xwl_window_check_resolution_change_emulation() and we never enable the viewport. This commit fixes this by also calling xwl_window_check_resolution_change_emulation() if the Window being moved is an xwl_window itself. Acked-by: Olivier Fourdan Signed-off-by: Hans de Goede (cherry picked from commit 4fc107460a349a1a46f0e5251e6fd2a31f4c0428) --- hw/xwayland/xwayland.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c index 898a291fd..b40502dad 100644 --- a/hw/xwayland/xwayland.c +++ b/hw/xwayland/xwayland.c @@ -1006,7 +1006,7 @@ xwl_resize_window(WindowPtr window, xwl_screen->ResizeWindow = screen->ResizeWindow; screen->ResizeWindow = xwl_resize_window; - if (xwl_window && xwl_window_is_toplevel(window)) + if (xwl_window && (xwl_window_get(window) || xwl_window_is_toplevel(window))) xwl_window_check_resolution_change_emulation(xwl_window); } -- 2.26.2