X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=client.c;h=97dd96bb4cdad4e02e4a36bfecc1e2c1f6b50fa3;hp=beb7e353b6c1259770150509d47121e57eb4b1fe;hb=f522930a99d72a4662a7d6d495487bf77b5b6cde;hpb=58f2fe3f6af3d6f8c925125c721a2d1800d750dc diff --git a/client.c b/client.c index beb7e35..97dd96b 100644 --- a/client.c +++ b/client.c @@ -192,6 +192,7 @@ lower(Client *c) void manage(Window w, XWindowAttributes *wa) { + int diff; Client *c; XSetWindowAttributes twa; Window trans; @@ -205,6 +206,12 @@ manage(Window w, XWindowAttributes *wa) c->bw = c->fw = c->tw = wa->width; c->fh = c->th = wa->height; c->bh = bh; + + diff = sw - c->fw; + c->fx = sx + (random() % diff ? diff : 1); + diff = sh - c->fh; + c->fy = sy + (random() % diff ? diff : 1); + c->border = 1; c->proto = getproto(c->win); setsize(c); @@ -267,7 +274,7 @@ maximize(Arg *arg) *sel->w = sw - 2 * sel->border; *sel->h = sh - 2 * sel->border - bh; higher(sel); - resize(sel, False); + resize(sel, False, TopLeft); } void @@ -283,9 +290,11 @@ pop(Client *c) } void -resize(Client *c, Bool inc) +resize(Client *c, Bool inc, Corner sticky) { XConfigureEvent e; + int right = *c->x + *c->w; + int bottom = *c->y + *c->h; if(inc) { if(c->incw) @@ -305,6 +314,10 @@ resize(Client *c, Bool inc) *c->w = c->maxw; if(c->maxh && *c->h > c->maxh) *c->h = c->maxh; + if(sticky == TopRight || sticky == BottomRight) + *c->x = right - *c->w; + if(sticky == BottomLeft || sticky == BottomRight) + *c->y = bottom - *c->h; resizetitle(c); XSetWindowBorderWidth(dpy, c->win, 1); XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h);