From ef457112551a1c92afb6926708a5bab1fbbc8271 Mon Sep 17 00:00:00 2001 From: AlmaLinux RelEng Bot Date: Mon, 24 Aug 2026 09:25:39 -0400 Subject: [PATCH] import CS mutter-40.9-35.el9 --- ...er-actor-Set-a-minimum-guessed-scale.patch | 33 ++++++++ ...imize-windows-with-initial-IconicSta.patch | 71 +++++++++++++++++ SOURCES/change-stylus-button-order.diff | 79 +++++++++++++++++++ SPECS/mutter.spec | 23 +++++- 4 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 SOURCES/0001-clutter-actor-Set-a-minimum-guessed-scale.patch create mode 100644 SOURCES/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch create mode 100644 SOURCES/change-stylus-button-order.diff diff --git a/SOURCES/0001-clutter-actor-Set-a-minimum-guessed-scale.patch b/SOURCES/0001-clutter-actor-Set-a-minimum-guessed-scale.patch new file mode 100644 index 0000000..acc2a77 --- /dev/null +++ b/SOURCES/0001-clutter-actor-Set-a-minimum-guessed-scale.patch @@ -0,0 +1,33 @@ +From 552c8cfc0d96f5711dff98327e07ded506a7ecfc Mon Sep 17 00:00:00 2001 +From: Joan Torres +Date: Mon, 18 Dec 2023 18:33:16 +0100 +Subject: [PATCH] clutter/actor: Set a minimum guessed scale + +When running headlessly it fails guessing the scale to -1.0f making +the assertion g_assert (guessed_scale >= 0.5) fail. + +Setting it to 1.f in that case fixes it. + +Part-of: +(cherry picked from commit 3a94822e755e530b71c33bb5bce0e8faa438983c) +--- + clutter/clutter/clutter-actor.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c +index 64cf291f8b..5a6a009303 100644 +--- a/clutter/clutter/clutter-actor.c ++++ b/clutter/clutter/clutter-actor.c +@@ -15725,6 +15725,9 @@ clutter_actor_get_real_resource_scale (ClutterActor *self) + max_scale = MAX (clutter_stage_view_get_scale (view), max_scale); + } + ++ if (max_scale < 0.f) ++ max_scale = 1.f; ++ + guessed_scale = max_scale; + } + else +-- +2.54.0 + diff --git a/SOURCES/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch b/SOURCES/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch new file mode 100644 index 0000000..1a1eccd --- /dev/null +++ b/SOURCES/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch @@ -0,0 +1,71 @@ +From 85cc5455d373e2d28f0ae3cc6ed0e214343ad1ac Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jonas=20=C3=85dahl?= +Date: Mon, 18 May 2026 16:09:57 +0200 +Subject: [PATCH] x11: Do not unminimize windows with initial IconicState + +This is a revert of commit be5c2ebc. While this worked around issues in +wine/proton, it did contravene icccm in the interpretation of initially +iconic windows. + +This reverts commit be5c2ebcb59652c91a5817762e6535b357f14a47. + +Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2043 +Adapted-from: +--- + src/x11/events.c | 37 +++++++++++++------------------------ + 1 file changed, 13 insertions(+), 24 deletions(-) + +diff --git a/src/x11/events.c b/src/x11/events.c +index 388eff0ac7..6ab3fd77d2 100644 +--- a/src/x11/events.c ++++ b/src/x11/events.c +@@ -1418,33 +1418,22 @@ handle_other_xevent (MetaX11Display *x11_display, + { + window = meta_window_x11_new (display, event->xmaprequest.window, + FALSE, META_COMP_EFFECT_CREATE); +- /* The window might have initial iconic state, but this is a +- * MapRequest, fall through to ensure it is unminimized in +- * that case. +- */ + } +- else if (frame_was_receiver) ++ /* if frame was receiver it's some malicious send event or something */ ++ else if (!frame_was_receiver && window) + { +- meta_warning ("Map requests on the frame window are unexpected"); +- break; +- } +- +- /* Double check that creating the MetaWindow succeeded */ +- if (window == NULL) +- break; +- +- meta_verbose ("MapRequest on %s mapped = %d minimized = %d", +- window->desc, window->mapped, window->minimized); +- +- if (window->minimized) +- { +- meta_window_unminimize (window); +- if (window->workspace != workspace_manager->active_workspace) ++ meta_verbose ("MapRequest on %s mapped = %d minimized = %d\n", ++ window->desc, window->mapped, window->minimized); ++ if (window->minimized) + { +- meta_verbose ("Changing workspace due to MapRequest mapped = %d minimized = %d", +- window->mapped, window->minimized); +- meta_window_change_workspace (window, +- workspace_manager->active_workspace); ++ meta_window_unminimize (window); ++ if (window->workspace != workspace_manager->active_workspace) ++ { ++ meta_verbose ("Changing workspace due to MapRequest mapped = %d minimized = %d\n", ++ window->mapped, window->minimized); ++ meta_window_change_workspace (window, ++ workspace_manager->active_workspace); ++ } + } + } + break; +-- +2.47.3 + diff --git a/SOURCES/change-stylus-button-order.diff b/SOURCES/change-stylus-button-order.diff new file mode 100644 index 0000000..8271eda --- /dev/null +++ b/SOURCES/change-stylus-button-order.diff @@ -0,0 +1,79 @@ +From 287468e3d4ae517be351e7c0b7a8430ec7530540 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Wed, 24 Jan 2024 14:24:02 +1000 +Subject: [PATCH 1/2] backends/native: Swap BTN_STYLUS and BTN_STYLUS2 + +BTN_STYLUS is the lower one and traditionally (read: in X) maps to +middle button (2), BTN_STYLUS2 is the upper one and traditionally maps +to right button (3). + +This is also what GTK does and our desktop actions too map MIDDLE to +BTN_STYLUS and RIGHT to BTN_STYLUS2. + +See also gtk!6168 + +Part-of: +--- + src/backends/native/meta-seat-impl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c +index 0be4e7a307..9e387566dc 100644 +--- a/src/backends/native/meta-seat-impl.c ++++ b/src/backends/native/meta-seat-impl.c +@@ -662,12 +662,12 @@ meta_seat_impl_notify_button_in_impl (MetaSeatImpl *seat_impl, + + case BTN_RIGHT: + case BTN_STYLUS: +- button_nr = CLUTTER_BUTTON_SECONDARY; ++ button_nr = CLUTTER_BUTTON_MIDDLE; + break; + + case BTN_MIDDLE: + case BTN_STYLUS2: +- button_nr = CLUTTER_BUTTON_MIDDLE; ++ button_nr = CLUTTER_BUTTON_SECONDARY; + break; + + case 0x149: /* BTN_STYLUS3 */ +-- +2.53.0 + + +From f8b843710b007b3fb0831b5f838563010389bc2a Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Sat, 27 Jan 2024 14:11:42 +0100 +Subject: [PATCH 2/2] backends/native: Fix clutter button number assignment to + pointer evcodes + +Commit 947c636275 meant to swap BTN_STYLUS* buttons, not BTN_MIDDLE/RIGHT +as used by pointing devices. This was also missed during review. + +Fixes: 947c636275 ("backends/native: Swap BTN_STYLUS and BTN_STYLUS2") +Part-of: +--- + src/backends/native/meta-seat-impl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c +index 9e387566dc..884e326927 100644 +--- a/src/backends/native/meta-seat-impl.c ++++ b/src/backends/native/meta-seat-impl.c +@@ -660,12 +660,12 @@ meta_seat_impl_notify_button_in_impl (MetaSeatImpl *seat_impl, + button_nr = CLUTTER_BUTTON_PRIMARY; + break; + +- case BTN_RIGHT: ++ case BTN_MIDDLE: + case BTN_STYLUS: + button_nr = CLUTTER_BUTTON_MIDDLE; + break; + +- case BTN_MIDDLE: ++ case BTN_RIGHT: + case BTN_STYLUS2: + button_nr = CLUTTER_BUTTON_SECONDARY; + break; +-- +2.53.0 + diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec index 164e08e..a96606b 100644 --- a/SPECS/mutter.spec +++ b/SPECS/mutter.spec @@ -10,7 +10,7 @@ Name: mutter Version: 40.9 -Release: 32%{?dist} +Release: 35%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -196,6 +196,15 @@ Patch533: 0001-x11-iconcache-Turn-icons-from-WM_HINTS-pixmaps-to-ca.patch # RHEL-68825 Patch534: 0001-workspace-Sanity-check-input-to-activate.patch +# Avoid assert when headless (RHEL-110674) +Patch535: 0001-clutter-actor-Set-a-minimum-guessed-scale.patch + +# Don't unminimize mapped windows (RHEL-170806) +Patch536: 0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch + +# RHEL-146566 +Patch537: change-stylus-button-order.diff + BuildRequires: chrpath BuildRequires: pango-devel BuildRequires: startup-notification-devel @@ -343,6 +352,18 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %{_datadir}/mutter-%{mutter_api_version}/tests %changelog +* Thu Jun 12 2026 Carlos Garnacho - 40.9-35 +- Switch stylus button order to match Xorg session + Related: RHEL-146566 + +* Tue May 19 2026 Jonas Ådahl - 40.9-34 +- Don't unminimize mapped windows + Resolves: RHEL-170806 + +* Mon May 18 2026 Jonas Ådahl - 40.9-33 +- Avoid assert when headless + Resolves: RHEL-110674 + * Thu Nov 27 2025 Jonas Ådahl - 40.9-32 - Sanity check input on workspace activation API Related: RHEL-68825