From 4dcbe17c3de6a67b7b0e29dca740f5899518a479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Tue, 19 May 2026 10:03:05 +0200 Subject: [PATCH] Don't unminimize mapped windows Resolves: RHEL-170806 --- ...imize-windows-with-initial-IconicSta.patch | 71 +++++++++++++++++++ mutter.spec | 9 ++- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch diff --git a/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch b/0001-x11-Do-not-unminimize-windows-with-initial-IconicSta.patch new file mode 100644 index 0000000..1a1eccd --- /dev/null +++ b/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/mutter.spec b/mutter.spec index 6230982..965287d 100644 --- a/mutter.spec +++ b/mutter.spec @@ -10,7 +10,7 @@ Name: mutter Version: 40.9 -Release: 33%{?dist} +Release: 34%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -199,6 +199,9 @@ 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 + BuildRequires: chrpath BuildRequires: pango-devel BuildRequires: startup-notification-devel @@ -346,6 +349,10 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop %{_datadir}/mutter-%{mutter_api_version}/tests %changelog +* 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