Bjørn Lie
449d26aaba
- 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). OBS-URL: https://build.opensuse.org/request/show/1088799 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=451
68 lines
2.7 KiB
Diff
68 lines
2.7 KiB
Diff
From 3218626d7e1c1c9466ad5c64558cf9ace5b68926 Mon Sep 17 00:00:00 2001
|
|
From: Carlos Garnacho <carlosg@gnome.org>
|
|
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3001>
|
|
---
|
|
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
|
|
|