implemented right tag drawing in the status bar and titlebars af1158d1
Anselm R. Garbe · 2006-08-23 14:38 2 file(s) · +23 −10
draw.c +21 −10
125 125
	dc.w = textw(stext);
126 126
	dc.x = bx + bw - dc.w;
127 127
	drawtext(stext, !istile);
128 -
	if(sel && ((dc.w = dc.x - x) >= bh)) {
129 -
		dc.x = x;
130 -
		drawtext(sel->name, istile);
128 +
129 +
	if(sel) {
130 +
		for(i = 0; i < ntags; i++)
131 +
			if(sel->tags[i]) {
132 +
				dc.w = textw(tags[i]);
133 +
				dc.x -= dc.w;
134 +
				if(dc.x < x)
135 +
					break;
136 +
				drawtext(tags[i], istile);
137 +
			}
138 +
		if(dc.x > x && (dc.x - x) > bh) {
139 +
			dc.w = dc.x - x;
140 +
			dc.x = x;
141 +
			drawtext(sel->name, istile);
142 +
		}
131 143
	}
132 144
	XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
133 145
	XSync(dpy, False);
149 161
	XSetWindowBorder(dpy, c->win, dc.bg);
150 162
	XMapWindow(dpy, c->title);
151 163
152 -
	dc.x = dc.y = 0;
153 -
	dc.w = 0;
154 -
	for(i = 0; i < ntags; i++) {
164 +
	dc.y = dc.w = 0;
165 +
	dc.x = c->tw;
166 +
	for(i = 0; i < ntags; i++)
155 167
		if(c->tags[i]) {
156 -
			dc.x += dc.w;
157 168
			dc.w = textw(tags[i]);
169 +
			dc.x -= dc.w;
158 170
			drawtext(tags[i], !istile);
159 171
		}
160 -
	}
161 -
	dc.x += dc.w;
162 -
	dc.w = c->tw - dc.x;
172 +
	dc.w = dc.x;
173 +
	dc.x = 0;
163 174
	drawtext(c->name, !istile);
164 175
	XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0);
165 176
	XSync(dpy, False);
tag.c +2 −0
122 122
	settitle(sel);
123 123
	if(!isvisible(sel))
124 124
		arrange(NULL);
125 +
	else
126 +
		drawstatus();
125 127
}
126 128
127 129
void