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)
Anselm R. Garbe arg@suckless.org
Wed, 21 Feb 2007 11:39:57 +0100
M
client.c
→
client.c
@@ -171,38 +171,6 @@ XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
} 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 @@ focus(c);
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;@@ -338,6 +300,14 @@ XConfigureWindow(dpy, c->win, CWX | CWY | CWWidth | CWHeight | CWBorderWidth, &wc);
configure(c); XSync(dpy, False); } +} + +void +toggleversatile(Arg *arg) { + if(!sel || lt->arrange == versatile) + return; + sel->isversatile = !sel->isversatile; + lt->arrange(); } void
M
dwm.h
→
dwm.h
@@ -105,13 +105,11 @@
/* 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 @@ /* event.c */
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 */
M
layout.c
→
layout.c
@@ -69,6 +69,38 @@
/* 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))@@ -91,6 +123,12 @@ w = textw(layout[i].symbol);
if(w > blw) blw = w; } +} + +Client * +nexttiled(Client *c) { + for(; c && (c->isversatile || !isvisible(c)); c = c->next); + return c; } void@@ -151,14 +189,6 @@ if(sel)
lt->arrange(); else drawstatus(); -} - -void -toggleversatile(Arg *arg) { - if(!sel || lt->arrange == versatile) - return; - sel->isversatile = !sel->isversatile; - lt->arrange(); } void