X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=ccd8100366becd9e6b17a31df2d5470abf97f772;hb=f95eed34b46dfe73f1511703e0a9301c9d8d1952;hp=af2c2497f1f65af3c176c2e7bcbcd818ec30f3cf;hpb=c53980cddcee8afd13ea793134ed3ddf5dbef0e3;p=dwm.git diff --git a/client.c b/client.c index af2c249..ccd8100 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); @@ -227,11 +239,11 @@ manage(Window w, XWindowAttributes *wa) XGrabButton(dpy, Button1, ControlMask, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); - XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, + XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask, GrabModeAsync, GrabModeSync, None, None); if(!c->isfloat) @@ -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); } } @@ -307,13 +317,15 @@ resize(Client *c, Bool inc, Corner sticky) *c->w = c->maxw; if(c->maxh && *c->h > c->maxh) *c->h = c->maxh; - if(sticky == TopRight || sticky == BottomRight) + if(sticky == TopRight || sticky == BotRight) *c->x = right - *c->w; - if(sticky == BottomLeft || sticky == BottomRight) + 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;