[Xfce4-commits] <xfwm4:master> Optimize transients for group evaluation while withdrawing windows.

Olivier Fourdan noreply at xfce.org
Tue Oct 18 09:10:02 CEST 2011


Updating branch refs/heads/master
         to 33d41a823b2f5fabf458af6f6513d34d3ce86327 (commit)
       from 006f92a6d3308a9cde8decd3e47d75f3c5181f5e (commit)

commit 33d41a823b2f5fabf458af6f6513d34d3ce86327
Author: Olivier Fourdan <fourdan at xfce.org>
Date:   Tue Oct 18 09:08:07 2011 +0200

    Optimize transients for group evaluation while withdrawing windows.

 src/client.c |   39 +++++++++++++++++++--------------------
 1 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/client.c b/src/client.c
index bf5ca9a..175e984 100644
--- a/src/client.c
+++ b/src/client.c
@@ -2318,32 +2318,31 @@ clientWithdraw (Client * c, guint ws, gboolean iconify)
             continue;
         }
 
-        /* ws is used when transitioning between desktops, to avoid
-           hiding a transient for group that will be shown again on the new
-           workspace (transient for groups can be transients for multiple
-           ancesors splitted across workspaces...)
-         */
-        if (clientIsTransientOrModal (c2) &&
-            clientTransientOrModalHasAncestor (c2, ws))
+        if (FLAG_TEST (c2->flags, CLIENT_FLAG_STICKY) && !iconify)
         {
-            /* 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))
+        if (clientIsTransientOrModalForGroup (c2))
         {
-            /* Other ancestors for that transient for group are still
-             * visible on current workspace, so don't hide it...
-             */
-            continue;
-        }
 
-        if (FLAG_TEST (c2->flags, CLIENT_FLAG_STICKY) && !iconify)
-        {
-            continue;
+            if (clientTransientOrModalHasAncestor (c2, c2->win_workspace))
+            {
+                /* Other ancestors for that transient for group are still
+                 * visible on current workspace, so don't hide it...
+                 */
+                continue;
+            }
+            if ((ws != c2->win_workspace) &&
+                clientTransientOrModalHasAncestor (c2, ws))
+            {
+                /* ws is used when transitioning between desktops, to avoid
+                   hiding a transient for group that will be shown again on the new
+                   workspace (transient for groups can be transients for multiple
+                   ancesors splitted across workspaces...)
+                 */
+                continue;
+            }
         }
         clientWithdrawSingle (c2, list_of_windows, iconify);
     }


More information about the Xfce4-commits mailing list