t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit d66ad1457e6b1e3fc18c01767fdb499acaef3c8e
   DIR parent 8497f9f78195d386c7b50bc5105641a5c3f78554
   URI Author: Anselm R. Garbe <garbeam@gmail.com>
       Date:   Sat,  8 Dec 2007 20:11:56 +0100
       
       implemented reapply for re-applying the tagging rules during runtime, Mod-r
       Diffstat:
         M config.def.h                        |       1 +
         M dwm.1                               |       3 +++
         M dwm.c                               |      12 ++++++++++++
       
       3 files changed, 16 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       t@@ -47,6 +47,7 @@ Key keys[] = {
                { MODKEY,                        XK_h,                setmwfact,        "-0.05" },
                { MODKEY,                        XK_l,                setmwfact,        "+0.05" },
                { MODKEY,                        XK_m,                togglemax,        NULL },
       +        { MODKEY,                        XK_r,                reapply,        NULL },
                { MODKEY,                        XK_Return,        zoom,                NULL },
                { MODKEY,                        XK_Tab,                viewprevtag,        NULL },
                { MODKEY|ShiftMask,                XK_space,        togglefloating,        NULL },
   DIR diff --git a/dwm.1 b/dwm.1
       t@@ -80,6 +80,9 @@ Increases the master area width about 5% (tiled layout only).
        .B Mod1\-m
        Toggles maximization of current window.
        .TP
       +.B Mod1\-r
       +Re-applies tagging rules to all windows.
       +.TP
        .B Mod1\-Shift\-[1..n]
        Apply
        .RB nth
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -161,6 +161,7 @@ void movemouse(Client *c);
        Client *nexttiled(Client *c);
        void propertynotify(XEvent *e);
        void quit(const char *arg);
       +void reapply(const char *arg);
        void resize(Client *c, int x, int y, int w, int h, Bool sizehints);
        void resizemouse(Client *c);
        void restack(void);
       t@@ -1159,6 +1160,17 @@ quit(const char *arg) {
                readin = running = False;
        }
        
       +void
       +reapply(const char *arg) {
       +        static Bool zerotags[LENGTH(tags)] = { 0 };
       +        Client *c;
       +
       +        for(c = clients; c; c = c->next) {
       +                memcpy(c->tags, zerotags, sizeof zerotags);
       +                applyrules(c);
       +        }
       +        arrange();
       +}
        
        void
        resize(Client *c, int x, int y, int w, int h, Bool sizehints) {