dwm

dynamic window manager
git clone git://git.suckless.org/dwm
Log | Files | Refs | README | LICENSE

commit 29c26b88e7333fb8ea022c4bb4277bc0394ab9e3
parent f196b71e4d543e7d8c4fd6398cf1bedd3dafc024
Author: Anselm R. Garbe <arg@suckless.org>
Date:   Wed, 21 Feb 2007 11:39:57 +0100

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:
Mclient.c | 46++++++++--------------------------------------
Mdwm.h | 8++++----
Mlayout.c | 46++++++++++++++++++++++++++++++++++++++--------
3 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/client.c b/client.c @@ -171,38 +171,6 @@ focus(Client *c) { } 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 killclient(Arg *arg) { if(!sel) return; @@ -266,12 +234,6 @@ manage(Window w, XWindowAttributes *wa) { lt->arrange(); } -Client * -nexttiled(Client *c) { - for(; c && (c->isversatile || !isvisible(c)); c = c->next); - return c; -} - void resize(Client *c, int x, int y, int w, int h, Bool sizehints) { float actual, dx, dy, max, min; @@ -341,6 +303,14 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) { } void +toggleversatile(Arg *arg) { + if(!sel || lt->arrange == versatile) + return; + sel->isversatile = !sel->isversatile; + lt->arrange(); +} + +void updatesizehints(Client *c) { long msize; XSizeHints size; diff --git a/dwm.h b/dwm.h @@ -105,13 +105,11 @@ extern Window root, barwin; /* client.c */ extern void configure(Client *c); /* send synthetic configure event */ extern void focus(Client *c); /* focus c, c may be NULL */ -extern void focusnext(Arg *arg); /* focuses next visible client, arg is ignored */ -extern void focusprev(Arg *arg); /* focuses previous visible client, arg is ignored */ extern void killclient(Arg *arg); /* kill c nicely */ extern void manage(Window w, XWindowAttributes *wa); /* manage new client */ -extern Client *nexttiled(Client *c); /* returns tiled successor of c */ extern void resize(Client *c, int x, int y, int w, int h, Bool sizehints); /* resize with given coordinates c*/ +extern void toggleversatile(Arg *arg); /* toggles focused client between versatile/and non-versatile state */ extern void updatesizehints(Client *c); /* update the size hint variables of c */ extern void updatetitle(Client *c); /* update the name of c */ extern void unmanage(Client *c); /* destroy c */ @@ -127,12 +125,14 @@ extern unsigned int textw(const char *text); /* return the width of text in px*/ extern void grabkeys(void); /* grab all keys defined in config.h */ /* layout.c */ +extern void focusnext(Arg *arg); /* focuses next visible client, arg is ignored */ +extern void focusprev(Arg *arg); /* focuses previous visible client, arg is ignored */ extern void incnmaster(Arg *arg); /* increments nmaster with arg's index value */ extern void initlayouts(void); /* initialize layout array */ +extern Client *nexttiled(Client *c); /* returns tiled successor of c */ extern void resizemaster(Arg *arg); /* resizes the master percent with arg's index value */ extern void restack(void); /* restores z layers of all clients */ extern void setlayout(Arg *arg); /* sets layout, -1 toggles */ -extern void toggleversatile(Arg *arg); /* toggles focusesd client between versatile/and non-versatile state */ extern void versatile(void); /* arranges all windows versatile */ /* main.c */ diff --git 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;