[mutter] window-wayland: Don't use grab op for some other window when resizing



commit ac01e69a67642d255525e1a428a88a0bb6efc957
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Thu Jan 9 17:55:56 2020 +0100

    window-wayland: Don't use grab op for some other window when resizing
    
    When resizing a window interactively, we'll set a grab operation and a
    grab window, among other things. If we're resizing (including setting
    initial size, i.e. mapping) another window, that didn't change position,
    don't use the gravity of the grab operation when resizing our own
    window.
    
    This fixes an issue with jumpy popup position when moving a previously
    mapped gtk popover.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/999

 src/wayland/meta-window-wayland.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
---
diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c
index b6b949e36..47cbf1897 100644
--- a/src/wayland/meta-window-wayland.c
+++ b/src/wayland/meta-window-wayland.c
@@ -976,7 +976,10 @@ meta_window_wayland_finish_move_resize (MetaWindow              *window,
   if (rect.width != window->rect.width || rect.height != window->rect.height)
     flags |= META_MOVE_RESIZE_RESIZE_ACTION;
 
-  gravity = meta_resize_gravity_from_grab_op (window->display->grab_op);
+  if (window->display->grab_window == window)
+    gravity = meta_resize_gravity_from_grab_op (window->display->grab_op);
+  else
+    gravity = META_GRAVITY_STATIC;
   meta_window_move_resize_internal (window, flags, gravity, rect);
 
   g_clear_pointer (&acked_configuration, meta_wayland_window_configuration_free);


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