certain fixes, though still a lot of the mutex stuff missing
2bfd3fff
1 file(s) · +4 −6
| 560 | 560 | Client *c; |
|
| 561 | 561 | ||
| 562 | 562 | dc.x = 0; |
|
| 563 | - | for(c = stack; c && !isvisible(c); c = c->snext); |
|
| 563 | + | for(c = stack; c && (!isvisible(c) || getview(c) != v); c = c->snext); |
|
| 564 | 564 | for(i = 0; i < LENGTH(tags); i++) { |
|
| 565 | 565 | dc.w = textw(tags[i]); |
|
| 566 | - | if(seltags[i]) { |
|
| 566 | + | if(seltags[i] && seltags[i] == v->id) { |
|
| 567 | 567 | drawtext(v, tags[i], dc.sel, isurgent(i)); |
|
| 568 | 568 | drawsquare(v, c && c->tags[i], isoccupied(i), isurgent(i), dc.sel); |
|
| 569 | 569 | } |
|
| 724 | 724 | if(selview != v) |
|
| 725 | 725 | drawbar(v); |
|
| 726 | 726 | if(!c || (c && !isvisible(c))) |
|
| 727 | - | for(c = stack; c && !isvisible(c); c = c->snext); |
|
| 727 | + | for(c = stack; c && (!isvisible(c) || getview(c) != selview); c = c->snext); |
|
| 728 | 728 | if(sel && sel != c) { |
|
| 729 | 729 | grabbuttons(sel, False); |
|
| 730 | 730 | XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]); |
|
| 1156 | 1156 | XQueryPointer(dpy, root, &win, &win, &x, &y, &i, &i, &mask); |
|
| 1157 | 1157 | for(i = 0; i < nviews; i++) { |
|
| 1158 | 1158 | if((x >= views[i].x && x < views[i].x + views[i].w) |
|
| 1159 | - | && (y >= views[i].y && y < views[i].y + views[i].h)) { |
|
| 1159 | + | && (y >= views[i].y && y < views[i].y + views[i].h)) |
|
| 1160 | 1160 | return &views[i]; |
|
| 1161 | - | } |
|
| 1162 | 1161 | } |
|
| 1163 | 1162 | return NULL; |
|
| 1164 | 1163 | } |
|
| 1761 | 1760 | else |
|
| 1762 | 1761 | nh = th - 2 * c->border; |
|
| 1763 | 1762 | } |
|
| 1764 | - | fprintf(stderr, "tile %d %d %d %d\n", nx, ny, nw, nh); |
|
| 1765 | 1763 | resize(c, nx, ny, nw, nh, RESIZEHINTS); |
|
| 1766 | 1764 | if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw))) |
|
| 1767 | 1765 | /* client doesn't accept size constraints */ |
|