aboutsummaryrefslogtreecommitdiffstats
path: root/view.c
diff options
context:
space:
mode:
Diffstat (limited to 'view.c')
-rw-r--r--view.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/view.c b/view.c
index 5c06027..6985dc7 100644
--- a/view.c
+++ b/view.c
@@ -8,7 +8,7 @@
static Client *
nexttiled(Client *c) {
- for(c = getnext(c); c && c->isfloat; c = getnext(c->next));
+ for(; c && (c->isfloat || !isvisible(c)); c = c->next);
return c;
}
@@ -125,8 +125,9 @@ focusnext(Arg *arg) {
if(!sel)
return;
- if(!(c = getnext(sel->next)))
- c = getnext(clients);
+ for(c = sel->next; c && !isvisible(c); c = c->next);
+ if(!c)
+ for(c = clients; c && !isvisible(c); c = c->next);
if(c) {
focus(c);
restack();
@@ -139,9 +140,10 @@ focusprev(Arg *arg) {
if(!sel)
return;
- if(!(c = getprev(sel->prev))) {
+ for(c = sel->prev; c && !isvisible(c); c = c->prev);
+ if(!c) {
for(c = clients; c && c->next; c = c->next);
- c = getprev(c);
+ for(; c && !isvisible(c); c = c->prev);
}
if(c) {
focus(c);
remember that computers suck.