applied yiyus tagset patch bfd6079a
Anselm R Garbe · 2008-04-27 18:33 1 file(s) · +16 −21
dwm.c +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