From 7f9fac2ba23baf86d558a15f3e75e04098a7323e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 26 Jul 2019 18:49:17 +0200 Subject: [PATCH] window/wayland: Don't inhibit finishing moves if any window is resized meta_window_wayland_finish_move_resize() inhibited window moves to be finished if there was a resize grab active at the time, in order to handle window resizing. Change this to only affect the grabbed window itself, so that e.g. a popup can be positioned according to a pending configuration while there is an active resize grab. https://gitlab.gnome.org/GNOME/mutter/merge_requests/705 --- src/wayland/meta-window-wayland.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c index 7c8bcff42..a83cd163c 100644 --- a/src/wayland/meta-window-wayland.c +++ b/src/wayland/meta-window-wayland.c @@ -798,12 +798,14 @@ meta_window_wayland_finish_move_resize (MetaWindow *window, MetaWaylandSurfaceState *pending) { MetaWindowWayland *wl_window = META_WINDOW_WAYLAND (window); + MetaDisplay *display = window->display; int dx, dy; int geometry_scale; int gravity; MetaRectangle rect; MetaMoveResizeFlags flags; MetaWaylandWindowConfiguration *acked_configuration; + gboolean is_window_being_resized; /* new_geom is in the logical pixel coordinate space, but MetaWindow wants its * rects to represent what in turn will end up on the stage, i.e. we need to @@ -830,7 +832,10 @@ meta_window_wayland_finish_move_resize (MetaWindow *window, acked_configuration = acquire_acked_configuration (wl_window, pending); /* x/y are ignored when we're doing interactive resizing */ - if (!meta_grab_op_is_resizing (window->display->grab_op)) + is_window_being_resized = (meta_grab_op_is_resizing (display->grab_op) && + display->grab_window == window); + + if (!is_window_being_resized) { if (acked_configuration) {