diff -r aefd753cfe9b dwm.c --- a/dwm.c Mon Jul 27 12:01:58 2009 +0100 +++ b/dwm.c Sat Aug 01 13:10:24 2009 +0200 @@ -217,7 +217,9 @@ static void togglefloating(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); +static void _unfocus(Client *c, Bool setinputfocus); static void unfocus(Client *c); +static void unfocus2(Client *c); static void unmanage(Client *c); static void unmapnotify(XEvent *e); static void updategeom(void); @@ -792,7 +794,7 @@ if(!c || !ISVISIBLE(c)) for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); if(selmon->sel) - unfocus(selmon->sel); + unfocus2(selmon->sel); if(c) { if(c->mon != selmon) selmon = c->mon; @@ -1613,12 +1615,23 @@ } void -unfocus(Client *c) { +_unfocus(Client *c, Bool setinputfocus) { if(!c) return; grabbuttons(c, False); XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]); - XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); + if(setinputfocus) + XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); +} + +void +unfocus(Client *c) { + _unfocus(c, True); +} + +void +unfocus2(Client *c) { + _unfocus(c, False); } void