X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=e0ab719752cb5b4a990569959c75938c5b2f7b5a;hb=9cd686c93a80b4095d4ee0960bef320ccd9ea02c;hp=3fb2318bfa064998e5e304d053200223820e5c1b;hpb=66da15324eef4f85c6dda13eba80430dc4cc97bb;p=dwm.git diff --git a/client.c b/client.c index 3fb2318..e0ab719 100644 --- a/client.c +++ b/client.c @@ -49,9 +49,9 @@ max(Arg *arg) if(!sel) return; sel->x = sx; - sel->y = sy; + sel->y = sy + bh; sel->w = sw - 2 * sel->border; - sel->h = sh - 2 * sel->border; + sel->h = sh - 2 * sel->border - bh; craise(sel); resize(sel, False); discard_events(EnterWindowMask); @@ -60,8 +60,14 @@ max(Arg *arg) void view(Arg *arg) { + Client *c; + tsel = arg->i; arrange(NULL); + + for(c = clients; c; c = next(c->next)) + draw_client(c); + draw_bar(); } void @@ -126,7 +132,10 @@ tiling(Arg *arg) if(c->tags[tsel] && !c->floating) n++; - h = (n > 1) ? sh / (n - 1) : sh; + if(n > 1) + h = (sh - bh) / (n - 1); + else + h = sh - bh; for(i = 0, c = clients; c; c = c->next) { if(c->tags[tsel]) { @@ -137,19 +146,19 @@ tiling(Arg *arg) } if(n == 1) { c->x = sx; - c->y = sy; + c->y = sy + bh; c->w = sw - 2 * c->border; - c->h = sh - 2 * c->border; + c->h = sh - 2 * c->border - bh; } else if(i == 0) { c->x = sx; - c->y = sy; + c->y = sy + bh; c->w = mw - 2 * c->border; - c->h = sh - 2 * c->border; + c->h = sh - 2 * c->border - bh; } else { c->x = sx + mw; - c->y = sy + (i - 1) * h; + c->y = sy + (i - 1) * h + bh; c->w = w - 2 * c->border; c->h = h - 2 * c->border; } @@ -368,9 +377,11 @@ manage(Window w, XWindowAttributes *wa) c->win = w; c->tx = c->x = wa->x; c->ty = c->y = wa->y; + if(c->y < bh) + c->ty = c->y += bh; c->tw = c->w = wa->width; c->h = wa->height; - c->th = th; + c->th = bh; c->border = 1; c->proto = win_proto(c->win); update_size(c); @@ -393,7 +404,6 @@ manage(Window w, XWindowAttributes *wa) c->next = *l; /* *l == nil */ *l = c; - XSetWindowBorderWidth(dpy, c->win, 1); XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, @@ -490,6 +500,7 @@ resize(Client *c, Bool inc) if(c->maxh && c->h > c->maxh) c->h = c->maxh; resize_title(c); + XSetWindowBorderWidth(dpy, c->win, 1); XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); e.type = ConfigureNotify; e.event = c->win; @@ -565,6 +576,7 @@ draw_client(Client *c) { int i; if(c == sel) { + draw_bar(); XUnmapWindow(dpy, c->title); XSetWindowBorder(dpy, c->win, dc.fg); return; @@ -574,19 +586,18 @@ draw_client(Client *c) XMapWindow(dpy, c->title); dc.x = dc.y = 0; - dc.h = c->th; dc.w = 0; for(i = 0; i < TLast; i++) { if(c->tags[i]) { dc.x += dc.w; dc.w = textw(c->tags[i]) + dc.font.height; - draw(True, c->tags[i]); + drawtext(c->tags[i], True); } } dc.x += dc.w; dc.w = textw(c->name) + dc.font.height; - draw(True, c->name); + drawtext(c->name, True); XCopyArea(dpy, dc.drawable, c->title, dc.gc, 0, 0, c->tw, c->th, 0, 0); XFlush(dpy);