From 627b5a790f8e5fb0cdc4f82cf500b51a40fdabb0 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Tue, 9 Jul 2002 11:08:37 +0000 Subject: [PATCH] transient windows/workspace switch stuff (Old svn revision: 10438) --- src/hints.c | 2 +- src/workspaces.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hints.c b/src/hints.c index f82f9f7ba..e05c9d10a 100644 --- a/src/hints.c +++ b/src/hints.c @@ -564,7 +564,7 @@ void getTransientFor(Display * dpy, Window w, Window * transient_for) { DBG("entering getTransientFor\n"); - if(!XGetTransientForHint(dpy, w, transient_for)) + if(!XGetTransientForHint(dpy, w, transient_for) || (*transient_for == w)) { *transient_for = None; } diff --git a/src/workspaces.c b/src/workspaces.c index 3bb4f2f50..49a577d01 100644 --- a/src/workspaces.c +++ b/src/workspaces.c @@ -89,7 +89,7 @@ void workspaceSwitch(int new_ws, Client * c2) for(last = clients, i = 0; i < client_count; last = last->next, i++); for(c = last, i = 0; i < client_count; c = c->prev, i++) { - if((c->visible) && !(c->sticky) && ((c->win_workspace != new_ws))) + if((c->visible) && !(c->sticky) && !(c->transient_for) && ((c->win_workspace != new_ws))) { clientHide(c, False); } @@ -103,7 +103,7 @@ void workspaceSwitch(int new_ws, Client * c2) } else { - if((c->win_workspace == new_ws) && !(c->hidden)) + if((c->win_workspace == new_ws) && !(c->transient_for) && !(c->hidden)) { clientShow(c, False); if(c->focus) -- GitLab