Browse Source

implemented right tag drawing in the status bar and titlebars

master
Anselm R. Garbe 18 years ago
parent
commit
af1158d105
2 changed files with 23 additions and 10 deletions
  1. +21
    -10
      draw.c
  2. +2
    -0
      tag.c

+ 21
- 10
draw.c View File

@ -125,9 +125,21 @@ drawstatus()
dc.w = textw(stext); dc.w = textw(stext);
dc.x = bx + bw - dc.w; dc.x = bx + bw - dc.w;
drawtext(stext, !istile); drawtext(stext, !istile);
if(sel && ((dc.w = dc.x - x) >= bh)) {
dc.x = x;
drawtext(sel->name, istile);
if(sel) {
for(i = 0; i < ntags; i++)
if(sel->tags[i]) {
dc.w = textw(tags[i]);
dc.x -= dc.w;
if(dc.x < x)
break;
drawtext(tags[i], istile);
}
if(dc.x > x && (dc.x - x) > bh) {
dc.w = dc.x - x;
dc.x = x;
drawtext(sel->name, istile);
}
} }
XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0); XCopyArea(dpy, dc.drawable, barwin, dc.gc, 0, 0, bw, bh, 0, 0);
XSync(dpy, False); XSync(dpy, False);
@ -149,17 +161,16 @@ drawtitle(Client *c)
XSetWindowBorder(dpy, c->win, dc.bg); XSetWindowBorder(dpy, c->win, dc.bg);
XMapWindow(dpy, c->title); XMapWindow(dpy, c->title);
dc.x = dc.y = 0;
dc.w = 0;
for(i = 0; i < ntags; i++) {
dc.y = dc.w = 0;
dc.x = c->tw;
for(i = 0; i < ntags; i++)
if(c->tags[i]) { if(c->tags[i]) {
dc.x += dc.w;
dc.w = textw(tags[i]); dc.w = textw(tags[i]);
dc.x -= dc.w;
drawtext(tags[i], !istile); drawtext(tags[i], !istile);
} }
}
dc.x += dc.w;
dc.w = c->tw - dc.x;
dc.w = dc.x;
dc.x = 0;
drawtext(c->name, !istile); drawtext(c->name, !istile);
XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0); XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0);
XSync(dpy, False); XSync(dpy, False);


+ 2
- 0
tag.c View File

@ -122,6 +122,8 @@ tag(Arg *arg)
settitle(sel); settitle(sel);
if(!isvisible(sel)) if(!isvisible(sel))
arrange(NULL); arrange(NULL);
else
drawstatus();
} }
void void


Loading…
Cancel
Save