Don't unminimize mapped windows

Resolves: RHEL-170806
This commit is contained in:
Jonas Ådahl 2026-05-19 10:03:05 +02:00
parent 77ff09ab18
commit 4dcbe17c3d
2 changed files with 79 additions and 1 deletions

View File

@ -0,0 +1,71 @@
From 85cc5455d373e2d28f0ae3cc6ed0e214343ad1ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3001>
---
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

View File

@ -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 <jadahl@redhat.com> - 40.9-34
- Don't unminimize mapped windows
Resolves: RHEL-170806
* Mon May 18 2026 Jonas Ådahl <jadahl@redhat.com> - 40.9-33
- Avoid assert when headless
Resolves: RHEL-110674