[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