summaryrefslogtreecommitdiff
path: root/layout.c
diff options
context:
space:
mode:
authorAnselm R. Garbe <arg@suckless.org>2007-02-22 15:25:19 +0100
committerAnselm R. Garbe <arg@suckless.org>2007-02-22 15:25:19 +0100
commit27b0595af72060d7cc406639b6c53a854f0a3590 (patch)
treead04556f3a70e67d2a2db1e159d1fccf75cf7e37 /layout.c
parent12d5a26fd279cc2370954929dedf88d0ab205a16 (diff)
merged focus{prev.next} into focusclient(1/-1)
Diffstat (limited to 'layout.c')
-rw-r--r--layout.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/layout.c b/layout.c
index 5d43187..1e8f113 100644
--- a/layout.c
+++ b/layout.c
@@ -70,30 +70,26 @@ LAYOUTS
/* extern */
void
-focusnext(const char *arg) {
+focusclient(const char *arg) {
Client *c;
- if(!sel)
+ if(!sel || !arg)
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(const char *arg) {
- Client *c;
-
- if(!sel)
+ switch(atoi(arg)) {
+ default:
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);
+ case 1:
+ for(c = sel->next; c && !isvisible(c); c = c->next);
+ if(!c)
+ for(c = clients; c && !isvisible(c); c = c->next);
+ break;
+ case -1:
+ 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);
+ }
+ break;
}
if(c) {
focus(c);