x11: Hook up window gravity in size hints to MetaWindow gravity

Make us prefer the gravity as it happens through grab ops first, then
the gravity as specified by the client.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3972>
This commit is contained in:
Carlos Garnacho 2024-07-16 13:39:47 +02:00 committed by Marge Bot
parent ca0c6bcd69
commit 0eaae111d3

View File

@ -2159,6 +2159,18 @@ meta_window_x11_set_transient_for (MetaWindow *window,
return TRUE;
}
static MetaGravity
meta_window_x11_get_gravity (MetaWindow *window)
{
MetaGravity gravity;
gravity = META_WINDOW_CLASS (meta_window_x11_parent_class)->get_gravity (window);
if (gravity == META_GRAVITY_NONE)
gravity = window->size_hints.win_gravity;
return gravity;
}
gboolean
meta_window_x11_is_ssd (MetaWindow *window)
{
@ -2329,6 +2341,7 @@ meta_window_x11_class_init (MetaWindowX11Class *klass)
window_class->set_transient_for = meta_window_x11_set_transient_for;
window_class->stage_to_protocol = meta_window_x11_stage_to_protocol;
window_class->protocol_to_stage = meta_window_x11_protocol_to_stage;
window_class->get_gravity = meta_window_x11_get_gravity;
klass->freeze_commits = meta_window_x11_impl_freeze_commits;
klass->thaw_commits = meta_window_x11_impl_thaw_commits;