aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2012-02-07 23:55:02 +0200
committerIvan Kanakarakis <ivan.kanak@gmail.com>2012-02-07 23:55:02 +0200
commitb6ff7aba975782942a2d251ef9b69f07cdf2cc15 (patch)
tree2f70805bf0761416d2091f9d9d223537c2256c99
parent0501c459b3066791db5253998fff3af966974baf (diff)
keep transient windows on top unless floating
-rw-r--r--monsterwm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/monsterwm.c b/monsterwm.c
index d8c982d..d6d5241 100644
--- a/monsterwm.c
+++ b/monsterwm.c
@@ -916,7 +916,12 @@ void update_current(client *c) {
XChangeProperty(dis, root, netatoms[NET_ACTIVE], XA_WINDOW, 32,
PropModeReplace, (unsigned char *)&current->win, 1);
XSetInputFocus(dis, current->win, RevertToPointerRoot, CurrentTime);
- XRaiseWindow(dis, current->win);
+
+ /* keep transient windows on top of regular windows */
+ int trans = 0;
+ for (c=head; c; c=c->next) if (c->istransient) trans = XRaiseWindow(dis, c->win);
+ if (!trans || current->isfloating) XRaiseWindow(dis, current->win);
+
if (CLICK_TO_FOCUS) XUngrabButton(dis, Button1, None, current->win);
XSync(dis, False);
}