From 75eece6dd52aa49705bf59a6f5b6197b7a14f5db Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Sun, 7 Jun 2020 15:29:42 -0700 Subject: feat: working dispatch menu --- sys/cmd/dwm/dwm.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'sys/cmd/dwm/dwm.c') diff --git a/sys/cmd/dwm/dwm.c b/sys/cmd/dwm/dwm.c index a3b01bd..a943ed7 100644 --- a/sys/cmd/dwm/dwm.c +++ b/sys/cmd/dwm/dwm.c @@ -270,7 +270,6 @@ createmon(void) m->nmaster = nmaster; m->showbar = showbar; m->topbar = topbar; - m->gapx = gapx; m->lt[0] = &layouts[0]; m->lt[1] = &layouts[1 % arrlen(layouts)]; strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); @@ -758,10 +757,10 @@ setup(void) /* init screen */ screen = DefaultScreen(dpy); - sw = DisplayWidth(dpy, screen); - sh = DisplayHeight(dpy, screen); + sw = DisplayWidth(dpy, screen); + sh = DisplayHeight(dpy, screen); root = RootWindow(dpy, screen); - drw = drw_create(dpy, screen, root, sw, sh); + drw = drw_create(dpy, screen, root, sw, sh); if (!drw_fontset_create(drw, fonts, arrlen(fonts))) fatal("no fonts could be loaded."); lrpad = drw->fonts->h; @@ -844,7 +843,7 @@ swallowing(Window w) void tile(Monitor *m) { - uint i, n, h, mw, my, ty; + uint i, n, h, r, mw, my, ty; Client *c; for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); @@ -852,20 +851,23 @@ tile(Monitor *m) return; if (n > m->nmaster) - mw = m->nmaster ? m->ww * m->mfact : 0; + mw = m->nmaster ? (m->ww+gapx) * m->mfact : 0; else mw = m->ww; + for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) if (i < m->nmaster) { - h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gapx; - resize(c, m->wx, m->wy + my, mw - (2*c->bw) - m->gapx, h - (2*c->bw), 0); - if (my + HEIGHT(c) + m->gapx < m->wh) - my += HEIGHT(c) + m->gapx; + r = MIN(n, m->nmaster) - i; + h = (m->wh - my - gapx*(r-1))/r; + resize(c, m->wx + gapx, m->wy + my + gapx, mw - (2*c->bw) - gapx, h - (2*c->bw), 0); + if (my + HEIGHT(c) + gapx < m->wh) + my += HEIGHT(c) + gapx; } else { - h = (m->wh - ty) / (n - i) - m->gapx; - resize(c, m->wx + mw + m->gapx, m->wy + ty, m->ww - mw - (2*c->bw) - (2*m->gapx), h - (2*c->bw), 0); - if (ty + HEIGHT(c) + m->gapx < m->wh) - ty += HEIGHT(c) + m->gapx; + r = (n-i); + h = ((m->wh - ty) - gapx*(r-1))/r; + resize(c, m->wx + mw + gapx, m->wy + ty, m->ww - mw - (2*c->bw) - (2*gapx), h - (2*c->bw), 0); + if (ty + HEIGHT(c) + gapx < m->wh) + ty += HEIGHT(c) + gapx; } } @@ -965,7 +967,7 @@ updategeom(void) || unique[i].x_org != m->mx || unique[i].y_org != m->my || unique[i].width != m->mw || unique[i].height != m->mh) { - dirty = 1; + dirty = 1; m->num = i; m->mx = m->wx = unique[i].x_org; m->my = m->wy = unique[i].y_org; -- cgit v1.2.1