File xfwm4-4.8.2-fix-disappearing-transient-windows.patch of Package xfwm4

From 9fe2155f50857ba626b30ad45914865fe44cd07d Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <fourdan@xfce.org>
Date: Sat, 15 Oct 2011 14:57:27 +0000
Subject: Fix a bug with transients for group (including utility windows)

where the windows were withdrawn as many times as parent windows
where in the group, causing utility windows to disapear when
switching workspaces (this bug was affecting The GIMP and reported
initially bugzilla.gnome.org as bug 651454).
---
diff --git a/src/client.c b/src/client.c
index e5e56ca..0ec5dc4 100644
--- a/src/client.c
+++ b/src/client.c
@@ -2463,8 +2463,17 @@ clientWithdraw (Client * c, guint ws, gboolean iconify)
         if (clientIsTransientOrModal (c2) &&
             clientTransientOrModalHasAncestor (c2, ws))
         {
-            /* Other ancestors for that transient are still on screen, so don't
-               hide it...
+            /* Other ancestors for that transient window are visible on
+             * the specified workspace, so don't hide it...
+             */
+            continue;
+        }
+
+        if (clientIsTransientOrModalForGroup (c2) &&
+            clientTransientOrModalHasAncestor (c2, c2->win_workspace))
+        {
+            /* Other ancestors for that transient for group are still
+             * visible on current workspace, so don't hide it...
              */
             continue;
         }
diff --git a/src/stacking.c b/src/stacking.c
index 180ea61..73aed1f 100644
--- a/src/stacking.c
+++ b/src/stacking.c
@@ -545,7 +545,7 @@ clientAdjustFullscreenLayer (Client *c, gboolean set)
     g_return_val_if_fail (c, FALSE);
 
     TRACE ("entering clientAdjustFullscreenLayer");
-    TRACE ("Adjusting fullscreen layer for  \"%s\" (0x%lx)", c->name, c->window);
+    TRACE ("%s fullscreen layer for  \"%s\" (0x%lx)", set ? "Setting" : "Unsetting", c->name, c->window);
 
     if (set)
     {
openSUSE Build Service is sponsored by