more debug output, experimental focus optimisation - dwm - dynamic window manager
 (HTM) git clone https://git.parazyd.org/dwm
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit aa9f2be24ea9ea6d9419cad1975bf34c5b64b6e5
 (DIR) parent c53b29e60b1fcc0f7f095eaabccf38b3630e28fa
 (HTM) Author: Anselm R Garbe <anselm@garbe.us>
       Date:   Thu,  1 Apr 2010 00:14:15 +0100
       
       more debug output, experimental focus optimisation
       Diffstat:
         M dwm.c                               |      13 +++++++++----
       
       1 file changed, 9 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/dwm.c b/dwm.c
       @@ -815,8 +815,12 @@ void
        focus(Client *c) {
                if(!c || !ISVISIBLE(c))
                        for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
       -/*        if(selmon->sel)
       -                unfocus(selmon->sel);*/
       +        if(c && c == selmon->sel) {
       +                D fprintf(stderr, "focus, optimising focus away\n");
       +                return;
       +        }
       +        if(selmon->sel)
       +                unfocus(selmon->sel);
                if(c) {
                        if(c->mon != selmon)
                                selmon = c->mon;
       @@ -848,7 +852,8 @@ focusmon(const Arg *arg) {
        
                if(!mons->next)
                        return;
       -        m = dirtomon(arg->i);
       +        if((m = dirtomon(arg->i)) == selmon)
       +                return;
                unfocus(selmon->sel);
                selmon = m;
                focus(NULL);
       @@ -1406,7 +1411,7 @@ run(void) {
                /* main event loop */
                XSync(dpy, False);
                while(running && !XNextEvent(dpy, &ev)) {
       -                D fprintf(stderr, "run event %s\n", evname[ev.type]);
       +                D fprintf(stderr, "run event %s %ld\n", evname[ev.type], ev.xany.window);
                        if(handler[ev.type])
                                handler[ev.type](&ev); /* call handler */
                }