From 29c26b88e7333fb8ea022c4bb4277bc0394ab9e3 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 21 Feb 2007 11:39:57 +0100 Subject: 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) --- layout.c | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'layout.c') diff --git a/layout.c b/layout.c index d754afb..e5f635c 100644 --- a/layout.c +++ b/layout.c @@ -68,6 +68,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) @@ -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) @@ -153,14 +191,6 @@ setlayout(Arg *arg) { drawstatus(); } -void -toggleversatile(Arg *arg) { - if(!sel || lt->arrange == versatile) - return; - sel->isversatile = !sel->isversatile; - lt->arrange(); -} - void versatile(void) { Client *c; -- cgit v1.2.3-54-g00ecf