[mutter] window/wayland: Don't inhibit finishing moves if any window is resized



commit 7f9fac2ba23baf86d558a15f3e75e04098a7323e
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Fri Jul 26 18:49:17 2019 +0200

    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)
         {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]