diff options
author | Anselm R. Garbe <arg@suckless.org> | 2007-02-21 11:39:57 +0100 |
---|---|---|
committer | Anselm R. Garbe <arg@suckless.org> | 2007-02-21 11:39:57 +0100 |
commit | 29c26b88e7333fb8ea022c4bb4277bc0394ab9e3 (patch) | |
tree | f48255b650c9b8ecf252a2b6a5b0ca10b4158780 /layout.c | |
parent | f196b71e4d543e7d8c4fd6398cf1bedd3dafc024 (diff) | |
download | dwm-29c26b88e7333fb8ea022c4bb4277bc0394ab9e3.tar.gz |
moved focus{next,prev} and nexttiled from client.c to layout.c (because those are not client-specific), moved toggleversatile() from layout.c to client.c (because those are client-specific)
Diffstat (limited to 'layout.c')
-rw-r--r-- | layout.c | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/layout.c b/layout.c index d754afb..e5f635c 100644 --- a/layout.c +++ b/layout.c @@ -69,6 +69,38 @@ LAYOUTS /* extern */ void +focusnext(Arg *arg) { + Client *c; + + if(!sel) + return; + 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(); + } +} + +void +focusprev(Arg *arg) { + Client *c; + + if(!sel) + return; + for(c = sel->prev; c && !isvisible(c); c = c->prev); + if(!c) { + for(c = clients; c && c->next; c = c->next); + for(; c && !isvisible(c); c = c->prev); + } + if(c) { + focus(c); + restack(); + } +} + +void incnmaster(Arg *arg) { if((lt->arrange != tile) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) <= 2 * BORDERPX)) @@ -93,6 +125,12 @@ initlayouts(void) { } } +Client * +nexttiled(Client *c) { + for(; c && (c->isversatile || !isvisible(c)); c = c->next); + return c; +} + void resizemaster(Arg *arg) { if(lt->arrange != tile) @@ -154,14 +192,6 @@ setlayout(Arg *arg) { } void -toggleversatile(Arg *arg) { - if(!sel || lt->arrange == versatile) - return; - sel->isversatile = !sel->isversatile; - lt->arrange(); -} - -void versatile(void) { Client *c; |