diff --git a/mutter-do-not-unminimize-windows-with-initial-iconic.patch b/mutter-do-not-unminimize-windows-with-initial-iconic.patch new file mode 100644 index 0000000..ab72797 --- /dev/null +++ b/mutter-do-not-unminimize-windows-with-initial-iconic.patch @@ -0,0 +1,67 @@ +From 3218626d7e1c1c9466ad5c64558cf9ace5b68926 Mon Sep 17 00:00:00 2001 +From: Carlos Garnacho +Date: Wed, 1 Mar 2023 17:43:24 +0100 +Subject: [PATCH] x11: Do not unminimize windows with initial IconicState + +This is a revert of commit be5c2ebc, adapted to this day and age. +While this worked around issues in wine/proton, it did contravene +icccm in the interpretation of initially iconic windows. + +Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2043 +Part-of: +--- + src/x11/events.c | 34 ++++++++++++---------------------- + 1 file changed, 12 insertions(+), 22 deletions(-) + +diff --git a/src/x11/events.c b/src/x11/events.c +index 90d07cb5ecd..00f34e22118 100644 +--- a/src/x11/events.c ++++ b/src/x11/events.c +@@ -1528,32 +1528,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) ++ else + { +- break; +- } ++ meta_verbose ("MapRequest on %s mapped = %d minimized = %d", ++ window->desc, window->mapped, window->minimized); + +- /* 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) ++ if (window->minimized && !frame_was_receiver) + { +- 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", ++ window->mapped, window->minimized); ++ meta_window_change_workspace (window, ++ workspace_manager->active_workspace); ++ } + } + } + break; +-- +GitLab + diff --git a/mutter.changes b/mutter.changes index a982e2b..c1f84a5 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Tue May 23 07:41:44 UTC 2023 - Alynx Zhou + +- Add mutter-do-not-unminimize-windows-with-initial-iconic.patch: + mutter used to unminimize windows with initial IconicState, which + is a workaround for some old wine games, it breaks apps like + xterm starts with -iconic, this patch revert it (bsc#1193190, + glgo#GNOME/mutter!3001). + ------------------------------------------------------------------- Wed May 17 03:01:48 UTC 2023 - Alynx Zhou diff --git a/mutter.spec b/mutter.spec index 172a697..bb52460 100644 --- a/mutter.spec +++ b/mutter.spec @@ -38,6 +38,8 @@ Patch2: mutter-window-actor-Special-case-shaped-Java-windows.patch Patch3: mutter-crash-meta_context_terminate.patch # PATCH-FIX-UPSTREAM mutter-fix-wacom-tablet-crash.patch bsc#1211413 glgo#GNOME/mutter#2796 alynx.zhou@suse.com -- Fix x11 error of input configuration. Patch4: mutter-fix-wacom-tablet-crash.patch +# PATCH-FIX-UPSTREAM mutter-do-not-unminimize-windows-with-initial-iconic.patch bsc#1193190 glgo#GNOME/mutter!3001 alynx.zhou@suse.com -- Fix initial iconic handling +Patch5: mutter-do-not-unminimize-windows-with-initial-iconic.patch ## SLE-only patches start at 1000 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.