dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit c1128417a991258b2382a76ec4529b213ee15c91
parent 1b62f8fa58eba3e535134912da2fa305fb7d3021
Author: anselm@garbe.us <unknown>
Date:   Sun, 25 Mar 2012 17:46:03 +0200

applied Andreas Amann's netwm_active_window patch, thx
Diffstat:
Mdwm.c | 15++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -499,6 +499,7 @@ cleanup(void) {
         cleanupmon(mons);
     XSync(dpy, False);
     XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
+    XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
 }
 
 void
@@ -858,8 +859,10 @@ focus(Client *c) {
         XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
         setfocus(c);
     }
-    else
+    else {
         XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+        XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
+    }
     selmon->sel = c;
     drawbars();
 }
@@ -1527,8 +1530,12 @@ sendevent(Client *c, Atom proto) {
 
 void
 setfocus(Client *c) {
-    if(!c->neverfocus)
+    if(!c->neverfocus) {
         XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
+        XChangeProperty(dpy, root, netatom[NetActiveWindow],
+                         XA_WINDOW, 32, PropModeReplace,
+                         (unsigned char *) &(c->win), 1);
+    }
     sendevent(c, wmatom[WMTakeFocus]);
 }
 
@@ -1786,8 +1793,10 @@ unfocus(Client *c, Bool setfocus) {
         return;
     grabbuttons(c, False);
     XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
-    if(setfocus)
+    if(setfocus) {
         XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+        XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
+    }
 }
 
 void