t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 29c26b88e7333fb8ea022c4bb4277bc0394ab9e3
   DIR parent f196b71e4d543e7d8c4fd6398cf1bedd3dafc024
   URI 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:
         M client.c                            |      46 ++++++-------------------------
         M dwm.h                               |       8 ++++----
         M layout.c                            |      46 +++++++++++++++++++++++++------
       
       3 files changed, 50 insertions(+), 50 deletions(-)
       ---
   DIR diff --git a/client.c b/client.c
       t@@ -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;
       t@@ -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;
       t@@ -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;
   DIR diff --git a/dwm.h b/dwm.h
       t@@ -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 */
       t@@ -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 */
   DIR diff --git a/layout.c b/layout.c
       t@@ -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))
       t@@ -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)
       t@@ -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;