t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 879241c05cbf959304a2dc4f2fabcdcecaea5092
   DIR parent 3794c6294535518fdcdf2ceb434875584189aa1e
   URI Author: Anselm R. Garbe <arg@suckless.org>
       Date:   Mon, 19 Feb 2007 18:33:15 +0100
       
       replaced togglelayout with setlayout
       Diffstat:
         M config.arg.h                        |       2 +-
         M config.default.h                    |       6 +++---
         M dwm.h                               |       2 +-
         M event.c                             |       3 ++-
         M screen.c                            |      37 ++++++++++++++++++-------------
       
       5 files changed, 29 insertions(+), 21 deletions(-)
       ---
   DIR diff --git a/config.arg.h b/config.arg.h
       t@@ -63,7 +63,7 @@ static Key key[] = { \
                { MODKEY|ControlMask|ShiftMask,        XK_8,                toggletag,        { .i = 7 } }, \
                { MODKEY|ControlMask|ShiftMask,        XK_9,                toggletag,        { .i = 8 } }, \
                { MODKEY|ShiftMask,                XK_c,                killclient,        { 0 } }, \
       -        { MODKEY,                        XK_space,        togglelayout,        { 0 } }, \
       +        { MODKEY,                        XK_space,        setlayout,        { .i = -1 } }, \
                { MODKEY|ShiftMask,                XK_space,        toggleversatile,{ 0 } }, \
                { MODKEY,                        XK_0,                view,                { .i = -1 } }, \
                { MODKEY,                        XK_1,                view,                { .i = 0 } }, \
   DIR diff --git a/config.default.h b/config.default.h
       t@@ -58,8 +58,8 @@ static Key key[] = { \
                { MODKEY|ControlMask|ShiftMask,        XK_8,                toggletag,        { .i = 7 } }, \
                { MODKEY|ControlMask|ShiftMask,        XK_9,                toggletag,        { .i = 8 } }, \
                { MODKEY|ShiftMask,                XK_c,                killclient,        { 0 } }, \
       -        { MODKEY,                        XK_space,        togglelayout,        { 0 } }, \
       -        { MODKEY|ShiftMask,                XK_space,        toggleversatile        { 0 } }, \
       +        { MODKEY,                        XK_space,        setlayout,        { .i = -1 } }, \
       +        { MODKEY|ShiftMask,                XK_space,        toggleversatile,{ 0 } }, \
                { MODKEY,                        XK_0,                view,                { .i = -1 } }, \
                { MODKEY,                        XK_1,                view,                { .i = 0 } }, \
                { MODKEY,                        XK_2,                view,                { .i = 1 } }, \
       t@@ -86,7 +86,7 @@ static Key key[] = { \
         * xprop | awk -F '"' '/^WM_CLASS/ { printf("%s:%s:",$4,$2) }; /^WM_NAME/ { printf("%s\n",$2) }' */
        #define RULES \
        static Rule rule[] = { \
       -        /* class:instance:title regex        tags regex        versatile */ \
       +        /* class:instance:title regex        tags regex        isversatile */ \
                { "Gimp",                        NULL,                True }, \
                { "MPlayer",                        NULL,                True }, \
                { "Acroread",                        NULL,                True }, \
   DIR diff --git a/dwm.h b/dwm.h
       t@@ -134,10 +134,10 @@ extern void initlayouts(void);                        /* initialize layout array */
        extern Bool isvisible(Client *c);                /* returns True if client is visible */
        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 settags(Client *c, Client *trans);        /* sets tags of c */
        extern void tag(Arg *arg);                        /* tags c with arg's index */
        extern void toggleversatile(Arg *arg);                /* toggles focusesd client between versatile/and non-versatile state */
       -extern void togglelayout(Arg *arg);                /* toggles layout */
        extern void toggletag(Arg *arg);                /* toggles c tags with arg's index */
        extern void toggleview(Arg *arg);                /* toggles the tag with arg's index (in)visible */
        extern void versatile(void);                        /* arranges all windows versatile */
   DIR diff --git a/event.c b/event.c
       t@@ -140,7 +140,8 @@ buttonpress(XEvent *e) {
                        if(ev->x < x + blw)
                                switch(ev->button) {
                                case Button1:
       -                                togglelayout(NULL);
       +                                a.i = -1;
       +                                setlayout(&a);
                                        break;
                                case Button4:
                                        a.i = 1;
   DIR diff --git a/screen.c b/screen.c
       t@@ -191,6 +191,28 @@ restack(void) {
        }
        
        void
       +setlayout(Arg *arg) {
       +        unsigned int i;
       +
       +        if(arg->i == -1) {
       +                for(i = 0; i < nlayouts && lt != &layout[i]; i++);
       +                if(i == nlayouts - 1)
       +                        lt = &layout[0];
       +                else
       +                        lt = &layout[++i];
       +        }
       +        else {
       +                if(arg->i < 0 || arg->i >= nlayouts)
       +                        return;
       +                lt = &layout[arg->i];
       +        }
       +        if(sel)
       +                lt->arrange();
       +        else
       +                drawstatus();
       +}
       +
       +void
        settags(Client *c, Client *trans) {
                char prop[512];
                unsigned int i, j;
       t@@ -253,21 +275,6 @@ toggletag(Arg *arg) {
        }
        
        void
       -togglelayout(Arg *arg) {
       -        unsigned int i;
       -
       -        for(i = 0; i < nlayouts && lt != &layout[i]; i++);
       -        if(i == nlayouts - 1)
       -                lt = &layout[0];
       -        else
       -                lt = &layout[++i];
       -        if(sel)
       -                lt->arrange();
       -        else
       -                drawstatus();
       -}
       -
       -void
        toggleversatile(Arg *arg) {
                if(!sel || lt->arrange == versatile)
                        return;