wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit f210f90702f8f402b85e6f279f2817869c4f361c
parent 94a8bd0c3c019e51ffb1aab01c1b7f06ec1e2b98
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Sun,  7 May 2006 23:29:04 +0200

implemented new client drawing code which makes it easy to recognize the focused client in an unfocused column


Diffstat:
cmd/wm/client.c | 45++++++++++++++++++++++++++++-----------------
1 file changed, 28 insertions(+), 17 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -252,11 +252,15 @@ draw_client(Client *c) { BlitzDraw d = { 0 }; Frame *f; + char buf[256]; + int fidx; + unsigned int w; if(!c->frame.size) return; /* might not have been attached atm */ f = c->frame.data[c->sel]; + fidx = idx_of_frame(f); d.drawable = c->framewin; d.font = blitzfont; d.gc = c->gc; @@ -279,25 +283,32 @@ draw_client(Client *c) d.rect.height = height_of_bar(); d.notch = nil; - /* max mode bar */ - if(f->area->mode == Colmax) { - unsigned long tmp = d.color.fg; - char buf[256]; - d.color.fg = d.color.bg; - d.color.bg = tmp; - snprintf(buf, sizeof(buf), "%d/%d", idx_of_frame(f) + 1, f->area->frame.size); - d.align = CENTER; - d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, buf); - d.data = buf; - blitz_drawlabel(dpy, &d); - blitz_drawborder(dpy, &d); - d.color.bg = d.color.fg; - d.color.fg = tmp; - d.rect.x += d.rect.width; - } + /* mode bar */ + d.align = CENTER; + snprintf(buf, sizeof(buf), "%s%d/%d", + /* if */ !idx_of_area(f->area) ? "~" : "", + fidx, f->area->frame.size); + w = d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, buf); + d.rect.x = f->rect.width - d.rect.width; + d.data = buf; + + if(f->area->sel == fidx) + d.color = def.sel; + else + d.color = def.norm; + blitz_drawlabel(dpy, &d); + blitz_drawborder(dpy, &d); + d.rect.x = 0; + + if(c == sel_client()) + d.color = def.sel; + else + d.color = def.norm; /* tag bar */ d.rect.width = d.rect.height + blitz_textwidth(dpy, &blitzfont, c->tags); + if(d.rect.width > f->rect.width / 3) + d.rect.width = f->rect.width / 3; d.data = c->tags; blitz_drawlabel(dpy, &d); blitz_drawborder(dpy, &d); @@ -305,7 +316,7 @@ draw_client(Client *c) /* title bar */ d.align = WEST; - d.rect.width = f->rect.width - d.rect.x; + d.rect.width = f->rect.width - (d.rect.x + w); d.data = c->name; blitz_drawlabel(dpy, &d); blitz_drawborder(dpy, &d);