[Xfce4-commits] <xfwm4:xfce-4.8> 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).

Olivier Fourdan noreply at xfce.org
Sat Oct 15 17:06:01 CEST 2011


Updating branch refs/heads/xfce-4.8
         to 9fe2155f50857ba626b30ad45914865fe44cd07d (commit)
       from 9015305a2e4f46a938b88f0029c19db26657c0ad (commit)

commit 9fe2155f50857ba626b30ad45914865fe44cd07d
Author: Olivier Fourdan <fourdan at xfce.org>
Date:   Sat Oct 15 16:57:27 2011 +0200

    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).

 src/client.c   |   13 +++++++++++--
 src/stacking.c |    2 +-
 2 files changed, 12 insertions(+), 3 deletions(-)

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)
     {


More information about the Xfce4-commits mailing list