X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=efa96695d16247aebdeb5e6c2ab4ce96f4119f5c;hb=c8e57332d1a5167d213af0fc9438ff2b56c74fbb;hp=87c2f76a33dfec775274d34f5e04ad5bbf6aaa3e;hpb=b4d53bf194f9f9214b6c79d397d723ba53663b4b;p=dwm.git diff --git a/client.c b/client.c index 87c2f76..efa9669 100644 --- a/client.c +++ b/client.c @@ -54,19 +54,6 @@ grabbuttons(Client *c, Bool focused) { GrabModeAsync, GrabModeSync, None, None); } -static void -resizetitle(Client *c) { - c->tw = textw(c->name); - if(c->tw > c->w) - c->tw = c->w + 2; - c->tx = c->x + c->w - c->tw + 2; - c->ty = c->y; - if(isvisible(c)) - XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); - else - XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); -} - static int xerrordummy(Display *dsply, XErrorEvent *ee) { return 0; @@ -227,12 +214,12 @@ manage(Window w, XWindowAttributes *wa) { c->border = 0; updatesize(c); - if(c->x + c->w + 2 > sw) - c->x = sw - c->w - 2; - if(c->x < 0) - c->x = 0; - if(c->y + c->h + 2 > sh) - c->y = sh - c->h - 2; + if(c->x + c->w + 2 * BORDERPX > sw) + c->x = sw - c->w - 2 * BORDERPX; + if(c->x < sx) + c->x = sx; + if(c->y + c->h + 2 * BORDERPX > sh) + c->y = sh - c->h - 2 * BORDERPX; if(c->h != sh && c->y < bh) c->y = bh; @@ -250,11 +237,13 @@ manage(Window w, XWindowAttributes *wa) { CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); grabbuttons(c, False); + updatetitle(c); settags(c, getclient(trans)); if(!c->isfloat) c->isfloat = trans || (c->maxw && c->minw && c->maxw == c->minw && c->maxh == c->minh); + resizetitle(c); if(clients) clients->prev = c; @@ -262,7 +251,6 @@ manage(Window w, XWindowAttributes *wa) { c->snext = stack; stack = clients = c; - updatetitle(c); ban(c); XMapWindow(dpy, c->win); XMapWindow(dpy, c->twin); @@ -297,8 +285,8 @@ resize(Client *c, Bool sizehints, Corner sticky) { c->y = bottom - c->h; /* offscreen appearance fixes */ - if(c->x + c->w < 0) - c->x = 0; + if(c->x + c->w < sx) + c->x = sx; if(c->y + c->h < bh) c->y = bh; if(c->x > sw) @@ -314,13 +302,26 @@ resize(Client *c, Bool sizehints, Corner sticky) { if(c->w == sw && c->h == sh) wc.border_width = 0; else - wc.border_width = 1; + wc.border_width = BORDERPX; XConfigureWindow(dpy, c->win, CWX | CWY | CWWidth | CWHeight | CWBorderWidth, &wc); configure(c); XSync(dpy, False); } void +resizetitle(Client *c) { + c->tw = textw(c->name); + if(c->tw > c->w) + c->tw = c->w + 2 * BORDERPX; + c->tx = c->x + c->w - c->tw + 2 * BORDERPX; + c->ty = c->y; + if(isvisible(c)) + XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); + else + XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); +} + +void updatesize(Client *c) { long msize; XSizeHints size; @@ -382,7 +383,6 @@ updatetitle(Client *c) { } } XFree(name.value); - resizetitle(c); } void