[Xfce4-commits] <xfwm4:master> 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:04:01 CEST 2011


Updating branch refs/heads/master
         to fcb7c94e8df769a909a85947d280ce4fcea75abd (commit)
       from ded8ebf9434f60970828d79e3aed334e5f8b11bd (commit)

commit fcb7c94e8df769a909a85947d280ce4fcea75abd
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 e48345b..bf5ca9a 100644
--- a/src/client.c
+++ b/src/client.c
@@ -2326,8 +2326,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 b41dd30..7195a2a 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