Wayland: Fix auto-iconify on kwin_wayland

We now keep track of the fullscreen and activated state and only iconify
if we were previously fullscreen and now we are either not fullscreen or
not activated anymore.

This is the proper way to do it, compared to the previous hack where we
didn’t iconify only if it was the first configure event received.
diff --git a/src/wl_platform.h b/src/wl_platform.h
index c17ebe8..9fef848 100644
--- a/src/wl_platform.h
+++ b/src/wl_platform.h
@@ -208,8 +208,7 @@
 
     struct zwp_idle_inhibitor_v1*          idleInhibitor;
 
-    // This is a hack to prevent auto-iconification on creation.
-    GLFWbool                    justCreated;
+    GLFWbool                    wasFullscreen;
 
     struct {
         GLFWbool                           serverSide;
diff --git a/src/wl_window.c b/src/wl_window.c
index e95a3ae..ebd76bb 100644
--- a/src/wl_window.c
+++ b/src/wl_window.c
@@ -641,10 +641,17 @@
         _glfwInputWindowDamage(window);
     }
 
-    if (!window->wl.justCreated && !activated && window->monitor && window->autoIconify)
-        _glfwPlatformIconifyWindow(window);
+    if (window->wl.wasFullscreen && window->autoIconify)
+    {
+        if (!activated || !fullscreen)
+        {
+            _glfwPlatformIconifyWindow(window);
+            window->wl.wasFullscreen = GLFW_FALSE;
+        }
+    }
+    if (fullscreen && activated)
+        window->wl.wasFullscreen = GLFW_TRUE;
     _glfwInputWindowFocus(window, activated);
-    window->wl.justCreated = GLFW_FALSE;
 }
 
 static void xdgToplevelHandleClose(void* data,
@@ -913,7 +920,6 @@
                               const _GLFWctxconfig* ctxconfig,
                               const _GLFWfbconfig* fbconfig)
 {
-    window->wl.justCreated = GLFW_TRUE;
     window->wl.transparent = fbconfig->transparent;
 
     if (!createSurface(window, wndconfig))