From 743fb1fdd1c633b5d0b84d781cd8c574b79261ea Mon Sep 17 00:00:00 2001 From: Olivier Fourdan <fourdan.olivier@wanadoo.fr> Date: Sun, 15 Feb 2004 21:26:13 +0000 Subject: [PATCH] Place (non transients) modals at a normal layer, or on top of its parent window if on a upper layer, Restore windows on current workspace as default (bug id #0000115 and #0000116) (Old svn revision: 11579) --- src/client.c | 11 +++++++++-- src/events.c | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/client.c b/src/client.c index 803b3aa5c..838f64caa 100644 --- a/src/client.c +++ b/src/client.c @@ -1221,12 +1221,19 @@ clientWindowType (Client * c) { Client *c2; - TRACE ("Window is a transient or a modal"); + TRACE ("Window \"%s\" is a transient or a modal", c->name); c2 = clientGetHighestTransientOrModalFor (c); if (c2) { - c->initial_layer = c2->win_layer; + if (clientIsTransient (c)); + { + c->initial_layer = c2->win_layer; + } + else if (c->initial_layer < c2->win_layer) /* clientIsModal (c) */ + { + c->initial_layer = c2->win_layer; + } TRACE ("Applied layer is %i", c->initial_layer); } FLAG_UNSET (c->flags, diff --git a/src/events.c b/src/events.c index 615a31993..7825cfe09 100644 --- a/src/events.c +++ b/src/events.c @@ -1548,7 +1548,7 @@ handleClientMessage (XClientMessageEvent * ev) TRACE ("client \"%s\" (0x%lx) has received a net_active_window event", c->name, c->window); - workspaceSwitch (c->win_workspace, NULL); + clientSetWorkspace (c, workspace, TRUE); clientShow (c, TRUE); clientRaise (c); clientSetFocus (c, FOCUS_SORT); -- GitLab