dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit aa9f2be24ea9ea6d9419cad1975bf34c5b64b6e5
parent c53b29e60b1fcc0f7f095eaabccf38b3630e28fa
Author: Anselm R Garbe <anselm@garbe.us>
Date:   Thu,  1 Apr 2010 00:14:15 +0100

more debug output, experimental focus optimisation
Diffstat:
Mdwm.c | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
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 */
     }