t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 3a392b855882786d1aa9c842d1c36b5c1cbc576a
   DIR parent 92fe06b501a5458a6aecdcc53f8d35c2a1f55c1c
   URI Author: garbeam@gmail.com <unknown>
       Date:   Sat, 25 Jun 2011 09:07:28 +0100
       
       making enternotify less focus hungry
       Diffstat:
         M BUGS                                |      21 ---------------------
         M dwm.c                               |       4 ++++
       
       2 files changed, 4 insertions(+), 21 deletions(-)
       ---
   DIR diff --git a/BUGS b/BUGS
       t@@ -8,27 +8,6 @@ reproducible with xrandr -s but not with --output and --mode, strange
        
        ---
        
       -> enternotify is handled even when the entered window is already focused
       -> (eg moving the mouse to the bar and back, scrolling on the border..)
       ->
       -> focusing might be expensive for some clients (eg dim/light up)
       ->
       -> a possible solution is to modify enternotify:
       ->
       -> +       c = wintoclient(ev->window);
       ->        if((m = wintomon(ev->window)) && m != selmon) {
       ->                unfocus(selmon->sel);
       ->                selmon = m;
       ->        }
       -> +       else if (c == selmon->sel || c == NULL)
       -> +               return;
       -
       ----
       -
       -dmenu appears on the monitor where the pointer is and not on selmon
       -
       ----
       -
        yet another corner case:
        open a terminal, focus another monitor, but without moving the mouse
        pointer there
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -820,15 +820,19 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
        
        void
        enternotify(XEvent *e) {
       +        Client *c;
                Monitor *m;
                XCrossingEvent *ev = &e->xcrossing;
        
                if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
                        return;
       +        c = wintoclient(ev->window);
                if((m = wintomon(ev->window)) && m != selmon) {
                        unfocus(selmon->sel, True);
                        selmon = m;
                }
       +        else if(c == selmon->sel || c == NULL)
       +                return;
                focus((wintoclient(ev->window)));
        }