aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/dwm/dwm.c
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2020-06-07 15:29:42 -0700
committerNicholas Noll <nbnoll@eml.cc>2020-06-07 15:29:42 -0700
commit75eece6dd52aa49705bf59a6f5b6197b7a14f5db (patch)
tree3aafe0581b8a6cca95467f26334668c1e914f32e /sys/cmd/dwm/dwm.c
parent13ebf171dd7c7cf3fdba6d89c184a644fc37ac38 (diff)
feat: working dispatch menu
Diffstat (limited to 'sys/cmd/dwm/dwm.c')
-rw-r--r--sys/cmd/dwm/dwm.c32
1 files changed, 17 insertions, 15 deletions
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;