applied yiyus tagset patch
bfd6079a
1 file(s) · +16 −21
| 214 | 214 | int screen, sx, sy, sw, sh; |
|
| 215 | 215 | int (*xerrorxlib)(Display *, XErrorEvent *); |
|
| 216 | 216 | int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh; |
|
| 217 | - | int viewtags_set = 0; |
|
| 217 | + | int seltags = 0; |
|
| 218 | 218 | double mfact; |
|
| 219 | 219 | unsigned int numlockmask = 0; |
|
| 220 | 220 | void (*handler[LASTEvent]) (XEvent *) = { |
|
| 234 | 234 | Atom wmatom[WMLast], netatom[NetLast]; |
|
| 235 | 235 | Bool otherwm, readin; |
|
| 236 | 236 | Bool running = True; |
|
| 237 | - | Bool *seltags; |
|
| 238 | - | Bool *viewtags[2]; |
|
| 237 | + | Bool *tagset[2]; |
|
| 239 | 238 | Client *clients = NULL; |
|
| 240 | 239 | Client *sel = NULL; |
|
| 241 | 240 | Client *stack = NULL; |
|
| 278 | 277 | if(ch.res_name) |
|
| 279 | 278 | XFree(ch.res_name); |
|
| 280 | 279 | if(!matched) |
|
| 281 | - | memcpy(c->tags, seltags, TAGSZ); |
|
| 280 | + | memcpy(c->tags, tagset[seltags], TAGSZ); |
|
| 282 | 281 | } |
|
| 283 | 282 | ||
| 284 | 283 | void |
|
| 538 | 537 | for(c = stack; c && !isvisible(c); c = c->snext); |
|
| 539 | 538 | for(i = 0; i < LENGTH(tags); i++) { |
|
| 540 | 539 | dc.w = textw(tags[i]); |
|
| 541 | - | if(seltags[i]) { |
|
| 540 | + | if(tagset[seltags][i]) { |
|
| 542 | 541 | drawtext(tags[i], dc.sel, isurgent(i)); |
|
| 543 | 542 | drawsquare(c && c->tags[i], isoccupied(i), isurgent(i), dc.sel); |
|
| 544 | 543 | } |
|
| 933 | 932 | unsigned int i; |
|
| 934 | 933 | ||
| 935 | 934 | for(i = 0; i < LENGTH(tags); i++) |
|
| 936 | - | if(c->tags[i] && seltags[i]) |
|
| 935 | + | if(c->tags[i] && tagset[seltags][i]) |
|
| 937 | 936 | return True; |
|
| 938 | 937 | return False; |
|
| 939 | 938 | } |
|
| 1505 | 1504 | XSetFont(dpy, dc.gc, dc.font.xfont->fid); |
|
| 1506 | 1505 | ||
| 1507 | 1506 | /* init tags */ |
|
| 1508 | - | viewtags[0] = emallocz(TAGSZ); |
|
| 1509 | - | viewtags[1] = emallocz(TAGSZ); |
|
| 1510 | - | viewtags[0][0] = viewtags[1][0] = True; |
|
| 1511 | - | seltags = viewtags[0]; |
|
| 1507 | + | tagset[0] = emallocz(TAGSZ); |
|
| 1508 | + | tagset[1] = emallocz(TAGSZ); |
|
| 1509 | + | tagset[0][0] = tagset[1][0] = True; |
|
| 1512 | 1510 | ||
| 1513 | 1511 | /* init bar */ |
|
| 1514 | 1512 | for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) { |
|
| 1701 | 1699 | unsigned int i, j; |
|
| 1702 | 1700 | ||
| 1703 | 1701 | i = idxoftag(arg); |
|
| 1704 | - | seltags[i] = !seltags[i]; |
|
| 1705 | - | for(j = 0; j < LENGTH(tags) && !seltags[j]; j++); |
|
| 1702 | + | tagset[seltags][i] = !tagset[seltags][i]; |
|
| 1703 | + | for(j = 0; j < LENGTH(tags) && !tagset[seltags][j]; j++); |
|
| 1706 | 1704 | if(j == LENGTH(tags)) |
|
| 1707 | - | seltags[i] = True; /* at least one tag must be viewed */ |
|
| 1705 | + | tagset[seltags][i] = True; /* at least one tag must be viewed */ |
|
| 1708 | 1706 | arrange(); |
|
| 1709 | 1707 | } |
|
| 1710 | 1708 | ||
| 1837 | 1835 | tmp[i] = (NULL == arg); |
|
| 1838 | 1836 | tmp[idxoftag(arg)] = True; |
|
| 1839 | 1837 | ||
| 1840 | - | if(memcmp(seltags, tmp, TAGSZ) != 0) { |
|
| 1841 | - | seltags = viewtags[viewtags_set ^= 1]; /* toggle tagset */ |
|
| 1842 | - | memcpy(seltags, tmp, TAGSZ); |
|
| 1843 | - | arrange(); |
|
| 1844 | - | } |
|
| 1845 | - | else |
|
| 1846 | - | viewprevtag(NULL); |
|
| 1838 | + | seltags ^= 1; /* toggle sel tagset */ |
|
| 1839 | + | if(memcmp(tagset[seltags ^ 1], tmp, TAGSZ) != 0) |
|
| 1840 | + | memcpy(tagset[seltags], tmp, TAGSZ); |
|
| 1841 | + | arrange(); |
|
| 1847 | 1842 | } |
|
| 1848 | 1843 | ||
| 1849 | 1844 | void |
|
| 1850 | 1845 | viewprevtag(const char *arg) { |
|
| 1851 | - | seltags = viewtags[viewtags_set ^= 1]; /* toggle tagset */ |
|
| 1846 | + | seltags ^= 1; /* toggle sel tagset */ |
|
| 1852 | 1847 | arrange(); |
|
| 1853 | 1848 | } |
|
| 1854 | 1849 | ||