X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=client.c;h=aa96f4ff80f8e598614a01a4924115f8e572a683;hb=bcaf6a7a0f492c3fafc4baabd2dc06f5191417ee;hp=62d4afc3fe621c3991ce66218c753b67d26fd7d4;hpb=aebd745f72d3bc049d0af68aec33cf17277b20e9;p=dwm.git diff --git a/client.c b/client.c index 62d4afc..aa96f4f 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 @@ -201,16 +205,17 @@ 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 = sx + (random() % diff ? diff : 1); - diff = sh - c->fh; - c->fy = sx + (random() % diff ? diff : 1); + 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); @@ -234,16 +239,17 @@ 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) - c->isfloat = trans - || ((c->maxw == c->minw) && (c->maxh == c->minh)); + c->isfloat = trans || (c->maxw && c->minw && + (c->maxw == c->minw) && (c->maxh == c->minh)); + setgeom(c); settitle(c); @@ -257,10 +263,8 @@ manage(Window w, XWindowAttributes *wa) focus(c); } else { - ban(c); XMapRaised(dpy, c->win); XMapRaised(dpy, c->title); - XSync(dpy, False); } } @@ -314,13 +318,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;