t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit fcd98308ba65c8872b485ac7f1800841b0a29e5c
   DIR parent b233089815367983e07939b2aabb999fdc359f91
   URI Author: Anselm R. Garbe <arg@suckless.org>
       Date:   Mon, 22 Jan 2007 10:35:58 +0100
       
       tthis variant is known to work, but focus() is ugly - we need in general a better way to handle multihead, this issel-stuff looks awkward (maybe it might be a good idea to set sel to NULL but to introduce a Client *revert which is set if a screen is unfocused, have to think about it further).
       Diffstat:
         M client.c                            |      20 ++++++++++++--------
         M event.c                             |       2 +-
       
       2 files changed, 13 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/client.c b/client.c
       t@@ -81,7 +81,7 @@ void
        focus(Client *c) {
                Client *old = sel;
        
       -        if(!issel || (c && !isvisible(c)))
       +        if(c && !isvisible(c))
                        return;
        
                if(old && old != c) {
       t@@ -89,14 +89,18 @@ focus(Client *c) {
                        XSetWindowBorder(dpy, old->win, dc.norm[ColBorder]);
                }
                if(c) {
       -                detachstack(c);
       -                c->snext = stack;
       -                stack = c;
       -                grabbuttons(c, True);
       -                XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
       -                XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
       +                if(issel) {
       +                        detachstack(c);
       +                        c->snext = stack;
       +                        stack = c;
       +                        grabbuttons(c, True);
       +                        XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
       +                        XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
       +                }
       +                else
       +                        XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
                }
       -        else
       +        else if(issel)
                        XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
                sel = c;
                drawstatus();
   DIR diff --git a/event.c b/event.c
       t@@ -269,8 +269,8 @@ leavenotify(XEvent *e) {
                XCrossingEvent *ev = &e->xcrossing;
        
                if((ev->window == root) && !ev->same_screen) {
       -                focus(NULL);
                        issel = False;
       +                focus(sel);
                }
        }