diff options
author | arg@10ksloc.org <unknown> | 2006-07-20 07:26:23 +0200 |
---|---|---|
committer | arg@10ksloc.org <unknown> | 2006-07-20 07:26:23 +0200 |
commit | 11737233a7ce6bc656bc7bc061c68eeda824ee9b (patch) | |
tree | 4d2f9452d9bd1ddf3dd572ed03603d7d4abd7185 /client.c | |
parent | bcaf6a7a0f492c3fafc4baabd2dc06f5191417ee (diff) | |
download | dwm-11737233a7ce6bc656bc7bc061c68eeda824ee9b.tar.gz |
removed c->f{x,y,w,h} and c->t{x,y,w,h} in favor for the new rule handling remembering two kinds of geometries is unnecessary, removed the randomized (x,y) setting on dofloat startup, was kind too random und unpredictable
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 128 |
1 files changed, 52 insertions, 76 deletions
diff --git a/client.c b/client.c index aa96f4f..c797972 100644 --- a/client.c +++ b/client.c @@ -16,19 +16,19 @@ resizetitle(Client *c) { int i; - c->bw = 0; + c->tw = 0; for(i = 0; i < TLast; i++) if(c->tags[i]) - c->bw += textw(c->tags[i]); - c->bw += textw(c->name); - if(c->bw > *c->w) - c->bw = *c->w + 2; - c->bx = *c->x + *c->w - c->bw + 2; - c->by = *c->y; + c->tw += textw(c->tags[i]); + 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(c->tags[tsel]) - XMoveResizeWindow(dpy, c->title, c->bx, c->by, c->bw, c->bh); + XMoveResizeWindow(dpy, c->title, c->tx, c->ty, c->tw, c->th); else - XMoveResizeWindow(dpy, c->title, c->bx + 2 * sw, c->by, c->bw, c->bh); + XMoveResizeWindow(dpy, c->title, c->tx + 2 * sw, c->ty, c->tw, c->th); } @@ -43,8 +43,8 @@ xerrordummy(Display *dsply, XErrorEvent *ee) void ban(Client *c) { - XMoveWindow(dpy, c->win, *c->x + 2 * sw, *c->y); - XMoveWindow(dpy, c->title, c->bx + 2 * sw, c->by); + XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); + XMoveWindow(dpy, c->title, c->tx + 2 * sw, c->ty); } void @@ -128,12 +128,12 @@ gravitate(Client *c, Bool invert) case EastGravity: case CenterGravity: case WestGravity: - dy = -(*c->h / 2) + c->border; + dy = -(c->h / 2) + c->border; break; case SouthEastGravity: case SouthGravity: case SouthWestGravity: - dy = -(*c->h); + dy = -(c->h); break; default: break; @@ -149,12 +149,12 @@ gravitate(Client *c, Bool invert) case NorthGravity: case CenterGravity: case SouthGravity: - dx = -(*c->w / 2) + c->border; + dx = -(c->w / 2) + c->border; break; case NorthEastGravity: case EastGravity: case SouthEastGravity: - dx = -(*c->w + c->border); + dx = -(c->w + c->border); break; default: break; @@ -164,8 +164,8 @@ gravitate(Client *c, Bool invert) dx = -dx; dy = -dy; } - *c->x += dx; - *c->y += dy; + c->x += dx; + c->y += dy; } void @@ -203,19 +203,14 @@ manage(Window w, XWindowAttributes *wa) c = emallocz(sizeof(Client)); c->win = w; - c->bx = c->fx = c->tx = wa->x; - c->by = c->fy = c->ty = wa->y; - c->bw = c->fw = c->tw = wa->width; - c->fh = c->th = wa->height; - c->bh = bh; + c->x = c->tx = wa->x; + c->y = c->ty = wa->y; + c->w = c->tw = wa->width; + c->h = wa->height; + c->th = 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; + if(c->y < bh) + c->y = c->ty = bh; c->border = 1; c->proto = getproto(c->win); @@ -227,7 +222,7 @@ manage(Window w, XWindowAttributes *wa) twa.background_pixmap = ParentRelative; twa.event_mask = ExposureMask; - c->title = XCreateWindow(dpy, root, c->bx, c->by, c->bw, c->bh, + c->title = XCreateWindow(dpy, root, c->tx, c->ty, c->tw, c->th, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); @@ -251,9 +246,7 @@ manage(Window w, XWindowAttributes *wa) (c->maxw == c->minw) && (c->maxh == c->minh)); - setgeom(c); settitle(c); - arrange(NULL); /* mapping the window now prevents flicker */ @@ -273,10 +266,10 @@ maximize(Arg *arg) { if(!sel) return; - *sel->x = sx; - *sel->y = sy + bh; - *sel->w = sw - 2 * sel->border; - *sel->h = sh - 2 * sel->border - bh; + sel->x = sx; + sel->y = sy + bh; + sel->w = sw - 2 * sel->border; + sel->h = sh - 2 * sel->border - bh; higher(sel); resize(sel, False, TopLeft); } @@ -297,43 +290,43 @@ void resize(Client *c, Bool inc, Corner sticky) { XConfigureEvent e; - int right = *c->x + *c->w; - int bottom = *c->y + *c->h; + int right = c->x + c->w; + int bottom = c->y + c->h; if(inc) { if(c->incw) - *c->w -= (*c->w - c->basew) % c->incw; + c->w -= (c->w - c->basew) % c->incw; if(c->inch) - *c->h -= (*c->h - c->baseh) % c->inch; + c->h -= (c->h - c->baseh) % c->inch; } - if(*c->x > sw) /* might happen on restart */ - *c->x = sw - *c->w; - if(*c->y > sh) - *c->y = sh - *c->h; - if(c->minw && *c->w < c->minw) - *c->w = c->minw; - if(c->minh && *c->h < c->minh) - *c->h = c->minh; - if(c->maxw && *c->w > c->maxw) - *c->w = c->maxw; - if(c->maxh && *c->h > c->maxh) - *c->h = c->maxh; + if(c->x > sw) /* might happen on restart */ + c->x = sw - c->w; + if(c->y > sh) + c->y = sh - c->h; + if(c->minw && c->w < c->minw) + c->w = c->minw; + if(c->minh && c->h < c->minh) + c->h = c->minh; + if(c->maxw && c->w > c->maxw) + 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; + c->x = right - c->w; if(sticky == BotLeft || sticky == BotRight) - *c->y = bottom - *c->h; + c->y = bottom - c->h; resizetitle(c); XSetWindowBorderWidth(dpy, c->win, 1); - XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h); + XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); e.type = ConfigureNotify; e.event = c->win; e.window = c->win; - e.x = *c->x; - e.y = *c->y; - e.width = *c->w; - e.height = *c->h; + e.x = c->x; + e.y = c->y; + e.width = c->w; + e.height = c->h; e.border_width = c->border; e.above = None; e.override_redirect = False; @@ -342,23 +335,6 @@ resize(Client *c, Bool inc, Corner sticky) } void -setgeom(Client *c) -{ - if((arrange == dotile) && !c->isfloat) { - c->x = &c->tx; - c->y = &c->ty; - c->w = &c->tw; - c->h = &c->th; - } - else { - c->x = &c->fx; - c->y = &c->fy; - c->w = &c->fw; - c->h = &c->fh; - } -} - -void setsize(Client *c) { XSizeHints size; |