X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=client.c;h=3b6a0e128baea6a97e0d5b8c19e34cd79b3b34cf;hp=beb7e353b6c1259770150509d47121e57eb4b1fe;hb=1f9614f82e14fa3a46e0db05346b41d6be611f88;hpb=58f2fe3f6af3d6f8c925125c721a2d1800d750dc diff --git a/client.c b/client.c index beb7e35..3b6a0e1 100644 --- a/client.c +++ b/client.c @@ -25,7 +25,11 @@ resizetitle(Client *c) c->bw = *c->w + 2; c->bx = *c->x + *c->w - c->bw + 2; c->by = *c->y; - XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh); + if(c->tags[tsel]) + XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh); + else + XMoveResizeWindow(dpy, c->title, c->bx + 2 * sw, c->by, c->bw, c->bh); + } static int @@ -192,6 +196,7 @@ lower(Client *c) void manage(Window w, XWindowAttributes *wa) { + int diff; Client *c; XSetWindowAttributes twa; Window trans; @@ -200,11 +205,18 @@ manage(Window w, XWindowAttributes *wa) c->win = w; c->bx = c->fx = c->tx = wa->x; c->by = c->fy = c->ty = wa->y; - if(c->fy < bh) - c->by = c->fy = c->ty += bh; c->bw = c->fw = c->tw = wa->width; c->fh = c->th = wa->height; c->bh = bh; + + diff = sw - c->fw; + c->fx = random() % (diff ? diff : 1); + diff = sh - c->fh - bh; + c->fy = random() % (diff ? diff : 1); + + if(c->fy < bh) + c->by = c->fy = c->ty = bh; + c->border = 1; c->proto = getproto(c->win); setsize(c); @@ -250,10 +262,8 @@ manage(Window w, XWindowAttributes *wa) focus(c); } else { - ban(c); XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); - XSync(dpy, False); } } @@ -267,7 +277,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 +293,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,9 +317,15 @@ resize(Client *c, Bool inc) *c->w = c->maxw; if(c->maxh && *c->h > c->maxh) *c->h = c->maxh; + if(sticky == TopRight || sticky == BotRight) + *c->x = right - *c->w; + if(sticky == BotLeft || sticky == BotRight) + *c->y = bottom - *c->h; + resizetitle(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; e.window = c->win;