wmii

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

commit da725f1f83fe1733f32717bb62fab1b22142041e
parent 14375d795b25a787438e8c69c308b3bddd29f3bc
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Wed, 12 Apr 2006 12:24:04 +0200

now fixed the send_client_to bug, also changed max mode rendering, I added an additional bar which contains <sel client idx>/<number of clients>


Diffstat:
cmd/wm/client.c | 39++++++++++++++++++++++++++-------------
1 file changed, 26 insertions(+), 13 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -240,25 +240,38 @@ draw_client(Client *c) d.rect.height = height_of_bar(); d.notch = nil; - d.align = WEST; - d.rect.x = d.rect.height + XTextWidth(xfont, c->tags, strlen(c->tags)); - d.rect.width = c->frame.data[c->sel]->rect.width - d.rect.x; - d.data = c->name; - blitz_drawlabel(dpy, &d); - blitz_drawborder(dpy, &d); - + /* max mode bar */ if(c->frame.data[c->sel]->area->mode == Colmax) { - /* invert tag label */ 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(c->frame.data[c->sel]) + 1, + c->frame.data[c->sel]->area->frame.size); + d.align = CENTER; + d.rect.width = d.rect.height + XTextWidth(xfont, buf, strlen(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; } - d.align = CENTER; - d.rect.width = d.rect.x; - d.rect.x = 0; + + /* tag bar */ + d.rect.width = d.rect.height + XTextWidth(xfont, c->tags, strlen(c->tags)); d.data = c->tags; blitz_drawlabel(dpy, &d); blitz_drawborder(dpy, &d); + d.rect.x += d.rect.width; + + /* title bar */ + d.align = WEST; + d.rect.width = c->frame.data[c->sel]->rect.width - d.rect.x; + d.data = c->name; + blitz_drawlabel(dpy, &d); + blitz_drawborder(dpy, &d); XSync(dpy, False); } @@ -549,7 +562,7 @@ send_client_to(Client *c, char *arg) if(!strncmp(arg, "prev", 5) && i) { if(i > 1) to = v->area.data[i - 1]; - else if(a->frame.size == 1) { + else if(a->frame.size > 1) { Area *p, *n; unsigned int j; p = to = create_area(v); @@ -566,7 +579,7 @@ send_client_to(Client *c, char *arg) else if(!strncmp(arg, "next", 5) && i) { if(i < v->area.size - 1) to = v->area.data[i + 1]; - else if(a->frame.size == 1) { + else if(a->frame.size > 1) { to = create_area(v); arrange_view(v, True); }