From ca0c6bcd698c7d107d268c6665ceb0f2b2fcbcdd Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 16 Jul 2024 13:35:04 +0200 Subject: [PATCH] core: Set gravity based on grab op during window move/resize ops We will basically want to follow the gravity as specified by the drag corner/edge. Hook this up to meta_window_get_gravity(). Part-of: --- src/core/window.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/core/window.c b/src/core/window.c index bfe7fb902..0871aba8e 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -322,6 +322,21 @@ meta_window_real_get_client_pid (MetaWindow *window) static MetaGravity meta_window_real_get_gravity (MetaWindow *window) { + MetaWindowDrag *window_drag = NULL; + + if (window->display && window->display->compositor) + window_drag = meta_compositor_get_current_window_drag (window->display->compositor); + + if (window_drag && + meta_window_drag_get_window (window_drag) == window) + { + MetaGrabOp grab_op; + + grab_op = meta_window_drag_get_grab_op (window_drag); + + return meta_resize_gravity_from_grab_op (grab_op); + } + return META_GRAVITY_NONE; }