t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 9aa4a9043d1261f9ae71cc2740d061d68a99227e
   DIR parent d5893f55bec202e5dbb5ca4ef1f205cec5eb22c6
   URI Author: anselm@aab <unknown>
       Date:   Sun, 13 Jul 2008 18:08:55 +0100
       
       applied anydot's urgency hint patch, thanks!
       Diffstat:
         M dwm.c                               |      27 +++++++++++++++++++++++++--
       
       1 file changed, 25 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -139,6 +139,7 @@ static void attachstack(Client *c);
        static void buttonpress(XEvent *e);
        static void checkotherwm(void);
        static void cleanup(void);
       +static void clearurgent(void);
        static void configure(Client *c);
        static void configurenotify(XEvent *e);
        static void configurerequest(XEvent *e);
       t@@ -375,6 +376,23 @@ cleanup(void) {
        }
        
        void
       +clearurgent(void) {
       +        XWMHints *wmh;
       +        Client *c;
       +
       +        for(c = clients; c; c = c->next)
       +                if(ISVISIBLE(c) && c->isurgent) {
       +                        c->isurgent = False;
       +                        if (!(wmh = XGetWMHints(dpy, c->win)))
       +                                continue;
       +
       +                        wmh->flags &= ~XUrgencyHint;
       +                        XSetWMHints(dpy, c->win, wmh);
       +                        XFree(wmh);
       +                }
       +}
       +
       +void
        configure(Client *c) {
                XConfigureEvent ce;
        
       t@@ -1496,6 +1514,7 @@ toggleview(const Arg *arg) {
        
                if(mask) {
                        tagset[seltags] = mask;
       +                clearurgent();
                        arrange();
                }
        }
       t@@ -1626,10 +1645,13 @@ updatewmhints(Client *c) {
                XWMHints *wmh;
        
                if((wmh = XGetWMHints(dpy, c->win))) {
       -                if(c == sel)
       -                        sel->isurgent = False;
       +                if(ISVISIBLE(c) && wmh->flags & XUrgencyHint) {
       +                        wmh->flags &= ~XUrgencyHint;
       +                        XSetWMHints(dpy, c->win, wmh);
       +                }
                        else
                                c->isurgent = (wmh->flags & XUrgencyHint) ? True : False;
       +
                        XFree(wmh);
                }
        }
       t@@ -1641,6 +1663,7 @@ view(const Arg *arg) {
                seltags ^= 1; /* toggle sel tagset */
                if(arg && (arg->ui & TAGMASK))
                        tagset[seltags] = arg->i & TAGMASK;
       +        clearurgent();
                arrange();
        }