dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit fbce733532f90c0f6af23c0216fe47b3d40fb5c3
parent e7572804faa9a21a57ae298c2b153ff92d8a64ff
Author: Anselm R Garbe <garbeam@gmail.com>
Date:   Sat,  6 Dec 2008 09:32:32 +0000

integrated yiyus clearurgent refactoring
Diffstat:
Mdwm.c | 25++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -138,7 +138,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 clearurgent(Client *c);
 static void configure(Client *c);
 static void configurenotify(XEvent *e);
 static void configurerequest(XEvent *e);
@@ -365,20 +365,15 @@ cleanup(void) {
 }
 
 void
-clearurgent(void) {
+clearurgent(Client *c) {
     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);
-        }
+    c->isurgent = False;
+    if(!(wmh = XGetWMHints(dpy, c->win)))
+        return;
+    wmh->flags &= ~XUrgencyHint;
+    XSetWMHints(dpy, c->win, wmh);
+    XFree(wmh);
 }
 
 void
@@ -617,6 +612,8 @@ focus(Client *c) {
         XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
     }
     if(c) {
+        if(c->isurgent)
+            clearurgent(c);
         detachstack(c);
         attachstack(c);
         grabbuttons(c, True);
@@ -1500,7 +1497,6 @@ toggleview(const Arg *arg) {
 
     if(mask) {
         tagset[seltags] = mask;
-        clearurgent();
         arrange();
     }
 }
@@ -1673,7 +1669,6 @@ view(const Arg *arg) {
     seltags ^= 1; /* toggle sel tagset */
     if(arg->ui & TAGMASK)
         tagset[seltags] = arg->ui & TAGMASK;
-    clearurgent();
     arrange();
 }