import mutter-47.alpha-3.el10

i10c-beta changed/i10c-beta/mutter-47.alpha-3.el10
MSVSphere Packaging Team 4 weeks ago
commit dcc5b2fb22
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/mutter-47.alpha.tar.xz

@ -0,0 +1 @@
a153b8b724d2c99e6560f5ed9c107bd1af0f2582 SOURCES/mutter-47.alpha.tar.xz

@ -0,0 +1,66 @@
From beff8f13ed0cf16fa0b22f69de75f83e0378fdf1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 22 Jul 2024 12:37:01 +0200
Subject: [PATCH 1/3] Revert "x11/window: Compare input shape to client rect
when undecorating"
This reverts commit 1f1538be764ec5018b29d31c4486c0649a4e5068.
---
src/x11/window-x11.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index adf5075a9b..e7c76dd674 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2415,7 +2415,6 @@ meta_window_x11_update_input_region (MetaWindow *window)
g_autoptr (MtkRegion) region = NULL;
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
- MtkRectangle bounding_rect = { 0 };
Window xwindow;
if (window->decorated)
@@ -2427,14 +2426,10 @@ meta_window_x11_update_input_region (MetaWindow *window)
return;
}
xwindow = priv->frame->xwindow;
- bounding_rect.width = window->buffer_rect.width;
- bounding_rect.height = window->buffer_rect.height;
}
else
{
xwindow = priv->xwindow;
- bounding_rect.width = priv->client_rect.width;
- bounding_rect.height = priv->client_rect.height;
}
if (META_X11_DISPLAY_HAS_SHAPE (x11_display))
@@ -2478,8 +2473,8 @@ meta_window_x11_update_input_region (MetaWindow *window)
else if (n_rects == 1 &&
(rects[0].x == 0 &&
rects[0].y == 0 &&
- rects[0].width == bounding_rect.width &&
- rects[0].height == bounding_rect.height))
+ rects[0].width == window->buffer_rect.width &&
+ rects[0].height == window->buffer_rect.height))
{
/* This is the bounding region case. Keep the
* region as NULL. */
@@ -2496,6 +2491,13 @@ meta_window_x11_update_input_region (MetaWindow *window)
if (region != NULL)
{
+ MtkRectangle bounding_rect;
+
+ bounding_rect.x = 0;
+ bounding_rect.y = 0;
+ bounding_rect.width = window->buffer_rect.width;
+ bounding_rect.height = window->buffer_rect.height;
+
/* The shape we get back from the client may have coordinates
* outside of the frame. The X SHAPE Extension requires that
* the overall shape the client provides never exceeds the
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,35 @@
From c0fda823b3f0c6802afe549379135719f86c6bfc Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 9 Mar 2021 17:21:59 -0800
Subject: [PATCH] Test: deny atomic KMS for "tegra" (RHBZ #1936991)
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
data/61-mutter.rules | 1 +
src/backends/native/meta-kms-impl-device-atomic.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/data/61-mutter.rules b/data/61-mutter.rules
index 9262b152b9..24f9655b69 100644
--- a/data/61-mutter.rules
+++ b/data/61-mutter.rules
@@ -114,3 +114,4 @@ DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9b
DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9be6", TAG+="mutter-device-disable-kms-modifiers"
DRIVERS=="i915", SUBSYSTEM=="drm", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x9bf6", TAG+="mutter-device-disable-kms-modifiers"
ENV{ID_PATH}=="platform-vkms", TAG+="mutter-device-ignore"
+DRIVER=="tegra", SUBSYSTEM=="platform", TAG+="mutter-device-disable-atomic-kms"
diff --git a/src/backends/native/meta-kms-impl-device-atomic.c b/src/backends/native/meta-kms-impl-device-atomic.c
index a4ffd70b6a..9fac299e14 100644
--- a/src/backends/native/meta-kms-impl-device-atomic.c
+++ b/src/backends/native/meta-kms-impl-device-atomic.c
@@ -1306,6 +1306,7 @@ requires_hotspots (const char *driver_name)
"vboxvideo",
"virtio_gpu",
"vmwgfx",
+ "tegra",
NULL,
};
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,28 @@
From cbe6fb86ce1e71c7360974a960db6bf79eb1ebde Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 2 Dec 2022 22:49:41 +0100
Subject: [PATCH] place: Always center initial-setup/fedora-welcome
---
src/core/place.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/core/place.c b/src/core/place.c
index 8a06ccb667..f34ae7f43d 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -377,6 +377,11 @@ window_place_centered (MetaWindow *window)
type = window->type;
+ if (g_strcmp0 (meta_window_get_wm_class (window), "org.gnome.InitialSetup") == 0 ||
+ g_strcmp0 (meta_window_get_wm_class (window), "org.fedoraproject.welcome-screen") == 0 ||
+ g_strcmp0 (meta_window_get_wm_class (window), "fedora-welcome") == 0)
+ return TRUE;
+
return (type == META_WINDOW_DIALOG ||
type == META_WINDOW_MODAL_DIALOG ||
type == META_WINDOW_SPLASHSCREEN ||
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,35 @@
From 51e378c8f28b96b94c8da338b1b0f26cbc32c7f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 12 May 2017 13:40:31 +0200
Subject: [PATCH] window-actor: Special-case shaped Java windows
OpenJDK wrongly assumes that shaping a window implies no shadows.
They got lucky until commit b975676c changed the fallback case,
but now their compliance tests are broken. Make them happy again
by special-casing shaped Java windows.
---
src/compositor/meta-window-actor-x11.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c
index 2781df09cc..8748f3aa3a 100644
--- a/src/compositor/meta-window-actor-x11.c
+++ b/src/compositor/meta-window-actor-x11.c
@@ -431,6 +431,14 @@ has_shadow (MetaWindowActorX11 *actor_x11)
if (priv->has_custom_frame_extents)
return FALSE;
+ /*
+ * OpenJDK wrongly assumes that shaping a window implies no compositor
+ * shadows; make its compliance tests happy to give it what it wants ...
+ */
+ if (g_strcmp0 (window->res_name, "sun-awt-X11-XWindowPeer") == 0 &&
+ priv->shape_region != NULL)
+ return FALSE;
+
/*
* Generate shadows for all other windows.
*/
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,62 @@
From d1be108c729331aa169a2a0397925c7b17507857 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 20 Oct 2023 15:44:29 +0800
Subject: [PATCH 1/4] x11-display: Make subwindow redirection call mode
specific
This means that for X11 sessions we'll do it before any windows are
mapped, and before any plugin implementation is started. Doing it before
a plugin is started is important, because things that the plugin does
during startup can have consequences on how compositing on Xorg works.
For the Xwayland case, we'll do it relatively in the setup phase. It
appears to have been harmless to do it later in the post-opened signal,
but there is no harm in doing it as one of the earlier steps.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3089
---
src/compositor/meta-compositor-x11.c | 2 ++
src/wayland/meta-xwayland.c | 1 +
src/x11/meta-x11-display.c | 1 -
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c
index cbc48bcefc..760d6fdddc 100644
--- a/src/compositor/meta-compositor-x11.c
+++ b/src/compositor/meta-compositor-x11.c
@@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor,
compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay);
+ meta_x11_display_redirect_windows (x11_display, display);
+
return TRUE;
}
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 3366f11adc..db0a4a271a 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -1179,6 +1179,7 @@ on_x11_display_setup (MetaDisplay *display,
{
MetaX11Display *x11_display = meta_display_get_x11_display (display);
+ meta_x11_display_redirect_windows (x11_display, display);
meta_xwayland_init_dnd (x11_display);
meta_xwayland_init_xrandr (manager, x11_display);
}
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index 6b8d7faf55..6de0511dc6 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -308,7 +308,6 @@ on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *display)
{
meta_display_manage_all_xwindows (display);
- meta_x11_display_redirect_windows (x11_display, display);
}
static void
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,47 @@
From 3a73958f7eab973189441ec9b4a4c96ee6bb8ec7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 22 Jul 2024 12:55:30 +0200
Subject: [PATCH 2/3] Revert "x11/window: Update comment and variable name to
reflect current behavior"
This reverts commit e4763d00e8512aeb408ae118597d753f12217487.
---
src/x11/window-x11.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index e7c76dd674..b358b64bf2 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2491,20 +2491,21 @@ meta_window_x11_update_input_region (MetaWindow *window)
if (region != NULL)
{
- MtkRectangle bounding_rect;
+ MtkRectangle client_area;
- bounding_rect.x = 0;
- bounding_rect.y = 0;
- bounding_rect.width = window->buffer_rect.width;
- bounding_rect.height = window->buffer_rect.height;
+ client_area.x = 0;
+ client_area.y = 0;
+ client_area.width = window->buffer_rect.width;
+ client_area.height = window->buffer_rect.height;
/* The shape we get back from the client may have coordinates
* outside of the frame. The X SHAPE Extension requires that
* the overall shape the client provides never exceeds the
* "bounding rectangle" of the window -- the shape that the
- * window would have gotten if it was unshaped.
+ * window would have gotten if it was unshaped. In our case,
+ * this is simply the client area.
*/
- mtk_region_intersect_rectangle (region, &bounding_rect);
+ mtk_region_intersect_rectangle (region, &client_area);
}
meta_window_set_input_region (window, region);
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,112 @@
From c6a74d8f4161440a530bea5ca3b5cf199beb046b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 20 Oct 2023 17:03:31 +0800
Subject: [PATCH 2/4] display: Move X11 initial focus handling to
MetaX11Display
It's X11 specific, so put it in the X11 display manager object.
---
src/core/display.c | 34 ----------------------------------
src/x11/meta-x11-display.c | 25 +++++++++++++++++++++++++
2 files changed, 25 insertions(+), 34 deletions(-)
diff --git a/src/core/display.c b/src/core/display.c
index bd09082ed2..ddd475f457 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -945,9 +945,6 @@ meta_display_new (MetaContext *context,
MetaDisplay *display;
MetaDisplayPrivate *priv;
guint32 timestamp;
-#ifdef HAVE_X11_CLIENT
- Window old_active_xwindow = None;
-#endif
MetaMonitorManager *monitor_manager;
MetaSettings *settings;
MetaInputCapture *input_capture;
@@ -1065,14 +1062,6 @@ meta_display_new (MetaContext *context,
display->last_focus_time = timestamp;
display->last_user_time = timestamp;
-#ifdef HAVE_X11
- if (!meta_is_wayland_compositor ())
- meta_prop_get_window (display->x11_display,
- display->x11_display->xroot,
- display->x11_display->atom__NET_ACTIVE_WINDOW,
- &old_active_xwindow);
-#endif
-
if (!meta_compositor_manage (display->compositor, error))
{
g_object_unref (display);
@@ -1093,30 +1082,7 @@ meta_display_new (MetaContext *context,
g_signal_connect (display->gesture_tracker, "state-changed",
G_CALLBACK (gesture_tracker_state_changed), display);
- /* We know that if mutter is running as a Wayland compositor,
- * we start out with no windows.
- */
-#ifdef HAVE_X11_CLIENT
- if (!meta_is_wayland_compositor ())
- meta_display_manage_all_xwindows (display);
-
- if (old_active_xwindow != None)
- {
- MetaWindow *old_active_window;
- old_active_window = meta_x11_display_lookup_x_window (display->x11_display,
- old_active_xwindow);
- if (old_active_window)
- meta_window_focus (old_active_window, timestamp);
- else
- meta_display_unset_input_focus (display, timestamp);
- }
- else
- {
- meta_display_unset_input_focus (display, timestamp);
- }
-#else
meta_display_unset_input_focus (display, timestamp);
-#endif
g_signal_connect (stage, "notify::is-grabbed",
G_CALLBACK (on_is_grabbed_changed), display);
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index 6de0511dc6..267fa1b835 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -307,7 +307,32 @@ static void
on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *display)
{
+ Window old_active_xwindow = None;
+
+ if (!meta_is_wayland_compositor ())
+ {
+ meta_prop_get_window (display->x11_display,
+ display->x11_display->xroot,
+ display->x11_display->atom__NET_ACTIVE_WINDOW,
+ &old_active_xwindow);
+ }
+
meta_display_manage_all_xwindows (display);
+
+ if (old_active_xwindow != None)
+ {
+ MetaWindow *old_active_window;
+
+ old_active_window = meta_x11_display_lookup_x_window (x11_display,
+ old_active_xwindow);
+ if (old_active_window)
+ {
+ uint32_t timestamp;
+
+ timestamp = display->x11_display->timestamp;
+ meta_window_focus (old_active_window, timestamp);
+ }
+ }
}
static void
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,29 @@
From 3e6ba58c875055037e45f651bbcf866d2d47d82f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 22 Jul 2024 12:55:44 +0200
Subject: [PATCH 3/3] Revert "x11/window: Use correct bounding rect to
determine NULL input region"
This reverts commit 6bd920b355d12395dbf00b99374fc1f23783caaf.
---
src/x11/window-x11.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index b358b64bf2..16dc57eec2 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2473,8 +2473,8 @@ meta_window_x11_update_input_region (MetaWindow *window)
else if (n_rects == 1 &&
(rects[0].x == 0 &&
rects[0].y == 0 &&
- rects[0].width == window->buffer_rect.width &&
- rects[0].height == window->buffer_rect.height))
+ rects[0].width == priv->client_rect.width &&
+ rects[0].height == priv->client_rect.height))
{
/* This is the bounding region case. Keep the
* region as NULL. */
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,33 @@
From cc450c372358bc32960102ffdb2769a9f70cb6d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 17 Oct 2023 15:46:00 +0800
Subject: [PATCH 3/4] tests/x11: Fix replace test to catch the second instance
failing
The test never noticed that the second instance never actually managed
to load; it was looping a multi second retry session trying to redirect
windows, meaning it failed to catch https://gitlab.gnome.org/GNOME/mutter/-/issues/3089.
Fix the test so that it always waits for mutter to finish loading
successfully, just like it waits fro the first.
---
src/tests/x11-test.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/tests/x11-test.sh b/src/tests/x11-test.sh
index 59e460fc33..d95b2460f6 100755
--- a/src/tests/x11-test.sh
+++ b/src/tests/x11-test.sh
@@ -34,6 +34,9 @@ echo \# Launched with pid $MUTTER2_PID
MUTTER2_PID=$!
wait $MUTTER1_PID
+echo \# Waiting for the second mutter to finish loading
+gdbus wait --session org.gnome.Mutter.IdleMonitor
+
sleep 2
echo \# Terminating clients > /dev/stderr
--
2.44.0.501.g19981daefd.dirty

@ -0,0 +1,41 @@
From 5b589b298680bd394dd6a1ee7bef3d7def1a96c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 23 Oct 2023 14:47:33 +0800
Subject: [PATCH 4/4] display: Rename mandatory X11 initialization function
Simply to make it clear that the renamed function is specific to a
particular X11 initialization mode (mandatory Xwayland), put that in the
name, so that it's easier to understand when this function is relevant.
---
src/core/display.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/core/display.c b/src/core/display.c
index ddd475f457..e4f623ff9d 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -910,9 +910,9 @@ meta_display_init_x11 (MetaDisplay *display,
}
static void
-on_x11_initialized (MetaDisplay *display,
- GAsyncResult *result,
- gpointer user_data)
+on_mandatory_x11_initialized (MetaDisplay *display,
+ GAsyncResult *result,
+ gpointer user_data)
{
g_autoptr (GError) error = NULL;
@@ -1035,7 +1035,7 @@ meta_display_new (MetaContext *context,
if (x11_display_policy == META_X11_DISPLAY_POLICY_MANDATORY)
{
meta_display_init_x11 (display, NULL,
- (GAsyncReadyCallback) on_x11_initialized,
+ (GAsyncReadyCallback) on_mandatory_x11_initialized,
NULL);
}
#endif /* HAVE_XWAYLAND */
--
2.44.0.501.g19981daefd.dirty

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save