URI: 
       certain fixes, though still a lot of the mutex stuff missing - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 2bfd3fffbf5c913acfb7f56bdd7a29dc39d6d5d5
   DIR parent a3d8c05a95edbd4dad544c3373301551440c8092
  HTML Author: anselm@anselm1 <unknown>
       Date:   Mon, 25 Feb 2008 22:19:17 +0000
       
       certain fixes, though still a lot of the mutex stuff missing
       Diffstat:
         M dwm.c                               |      10 ++++------
       
       1 file changed, 4 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       @@ -560,10 +560,10 @@ drawbar(View *v) {
                Client *c;
        
                dc.x = 0;
       -        for(c = stack; c && !isvisible(c); c = c->snext);
       +        for(c = stack; c && (!isvisible(c) || getview(c) != v); c = c->snext);
                for(i = 0; i < LENGTH(tags); i++) {
                        dc.w = textw(tags[i]);
       -                if(seltags[i]) {
       +                if(seltags[i] && seltags[i] == v->id) {
                                drawtext(v, tags[i], dc.sel, isurgent(i));
                                drawsquare(v, c && c->tags[i], isoccupied(i), isurgent(i), dc.sel);
                        }
       @@ -724,7 +724,7 @@ focus(Client *c) {
                if(selview != v)
                        drawbar(v);
                if(!c || (c && !isvisible(c)))
       -                for(c = stack; c && !isvisible(c); c = c->snext);
       +                for(c = stack; c && (!isvisible(c) || getview(c) != selview); c = c->snext);
                if(sel && sel != c) {
                        grabbuttons(sel, False);
                        XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]);
       @@ -1156,9 +1156,8 @@ viewat() {
                XQueryPointer(dpy, root, &win, &win, &x, &y, &i, &i, &mask);
                for(i = 0; i < nviews; i++) {
                        if((x >= views[i].x && x < views[i].x + views[i].w)
       -                && (y >= views[i].y && y < views[i].y + views[i].h)) {
       +                && (y >= views[i].y && y < views[i].y + views[i].h))
                                return &views[i];
       -                }
                }
                return NULL;
        }
       @@ -1761,7 +1760,6 @@ tile(View *v) {
                                else
                                        nh = th - 2 * c->border;
                        }
       -                fprintf(stderr, "tile %d %d %d %d\n", nx, ny, nw, nh);
                        resize(c, nx, ny, nw, nh, RESIZEHINTS);
                        if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw)))
                                /* client doesn't accept size constraints */