summaryrefslogtreecommitdiffhomepage
path: root/patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch')
-rw-r--r--patch/bar_awesomebar.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/patch/bar_awesomebar.c b/patch/bar_awesomebar.c
index 446b547..5a3a588 100644
--- a/patch/bar_awesomebar.c
+++ b/patch/bar_awesomebar.c
@@ -89,6 +89,7 @@ click_awesomebar(Bar *bar, Arg *arg, BarClickArg *a)
void
hide(Client *c) {
+ Client *n;
if (!c || HIDDEN(c))
return;
@@ -108,7 +109,16 @@ hide(Client *c) {
XSelectInput(dpy, w, ca.your_event_mask);
XUngrabServer(dpy);
- focus(c->snext);
+ if (c->isfloating || !c->mon->lt[c->mon->sellt]->arrange) {
+ for (n = c->snext; n && (!ISVISIBLE(n) || HIDDEN(n)); n = n->snext);
+ if (!n)
+ for (n = c->mon->stack; n && (!ISVISIBLE(n) || HIDDEN(n)); n = n->snext);
+ } else {
+ n = nexttiled(c);
+ if (!n)
+ n = nexttiled(c->mon->clients);
+ }
+ focus(n);
arrange(c->mon);
}