Blob Blame History Raw
From 074af8f87ef89b13ff326fb5d04ee424bbfd4ced Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= <alberts.muktupavels@gmail.com>
Date: Thu, 29 Nov 2018 15:17:58 +0200
Subject: [PATCH] revert "unminimize windows with initial IconicState if first
 known on MapRequest"

According to ICCCM client is allowed to go from Withdrawn to Iconic
state. Also there are x11 apps that has -iconic command line option
that was broken.

Revert 6875256e63fbfd4500ddd27a7bf1aafc8d4c1ca3 commit to restore
previous behaviour.

https://gitlab.gnome.org/GNOME/metacity/issues/4
---
 src/core/display.c | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)

diff --git a/src/core/display.c b/src/core/display.c
index ed0aaf7f..273c97c5 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -2297,34 +2297,22 @@ event_callback (XEvent   *event,
         {
           window = meta_window_new (display, event->xmaprequest.window, FALSE,
                                     META_EFFECT_TYPE_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)
         {
-          g_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\n",
-                    window->desc, window->mapped, window->minimized);
-
-      if (window->minimized)
-        {
-          meta_window_unminimize (window);
-          if (window->workspace != window->screen->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\n",
-                            window->mapped, window->minimized);
-              meta_window_change_workspace (window,
-                                            window->screen->active_workspace);
+              meta_window_unminimize (window);
+              if (window->workspace != window->screen->active_workspace)
+                {
+                  meta_verbose ("Changing workspace due to MapRequest mapped = %d minimized = %d\n",
+                                window->mapped, window->minimized);
+                  meta_window_change_workspace (window,
+                                                window->screen->active_workspace);
+                }
             }
         }
       break;
-- 
2.18.1