itRevert "Apply smartborder patch, doesn't work for tiled layouts" - dwm - [fork] customized build of dwm, the dynamic window manager Err adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/dwm URL:git://src.adamsgaard.dk/dwm adamsgaard.dk 70 1Log /src/dwm/log.gph adamsgaard.dk 70 1Files /src/dwm/files.gph adamsgaard.dk 70 1Refs /src/dwm/refs.gph adamsgaard.dk 70 1README /src/dwm/file/README.gph adamsgaard.dk 70 1LICENSE /src/dwm/file/LICENSE.gph adamsgaard.dk 70 i--- Err adamsgaard.dk 70 1commit 7c3dd978316b8869a34163e9679fd7fe8c08ad20 /src/dwm/commit/7c3dd978316b8869a34163e9679fd7fe8c08ad20.gph adamsgaard.dk 70 1parent 1932f8db3cbc01daf55383eed322528b0330083f /src/dwm/commit/1932f8db3cbc01daf55383eed322528b0330083f.gph adamsgaard.dk 70 hAuthor: Anders Damsgaard URL:mailto:anders@adamsgaard.dk adamsgaard.dk 70 iDate: Thu, 18 Jun 2020 09:48:03 +0200 Err adamsgaard.dk 70 i Err adamsgaard.dk 70 iRevert "Apply smartborder patch, doesn't work for tiled layouts" Err adamsgaard.dk 70 i Err adamsgaard.dk 70 iThis reverts commit 1932f8db3cbc01daf55383eed322528b0330083f. Err adamsgaard.dk 70 i Err adamsgaard.dk 70 iDiffstat: Err adamsgaard.dk 70 i M dwm.c | 71 ++++++++++++------------------- Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i1 file changed, 28 insertions(+), 43 deletions(-) Err adamsgaard.dk 70 i--- Err adamsgaard.dk 70 1diff --git a/dwm.c b/dwm.c /src/dwm/file/dwm.c.gph adamsgaard.dk 70 it@@ -149,7 +149,7 @@ typedef struct { Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i /* function declarations */ Err adamsgaard.dk 70 i static void applyrules(Client *c); Err adamsgaard.dk 70 i-static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact); Err adamsgaard.dk 70 i+static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact); Err adamsgaard.dk 70 i static void arrange(Monitor *m); Err adamsgaard.dk 70 i static void arrangemon(Monitor *m); Err adamsgaard.dk 70 i static void attach(Client *c); Err adamsgaard.dk 70 it@@ -194,8 +194,8 @@ static void pop(Client *); Err adamsgaard.dk 70 i static void propertynotify(XEvent *e); Err adamsgaard.dk 70 i static void quit(const Arg *arg); Err adamsgaard.dk 70 i static Monitor *recttomon(int x, int y, int w, int h); Err adamsgaard.dk 70 i-static void resize(Client *c, int x, int y, int w, int h, int bw, int interact); Err adamsgaard.dk 70 i-static void resizeclient(Client *c, int x, int y, int w, int h, int bw); Err adamsgaard.dk 70 i+static void resize(Client *c, int x, int y, int w, int h, int interact); Err adamsgaard.dk 70 i+static void resizeclient(Client *c, int x, int y, int w, int h); Err adamsgaard.dk 70 i static void resizemouse(const Arg *arg); Err adamsgaard.dk 70 i static void restack(Monitor *m); Err adamsgaard.dk 70 i static void run(void); Err adamsgaard.dk 70 it@@ -329,7 +329,7 @@ applyrules(Client *c) Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i int Err adamsgaard.dk 70 i-applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact) Err adamsgaard.dk 70 i+applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact) Err adamsgaard.dk 70 i { Err adamsgaard.dk 70 i int baseismin; Err adamsgaard.dk 70 i Monitor *m = c->mon; Err adamsgaard.dk 70 it@@ -342,18 +342,18 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact) Err adamsgaard.dk 70 i *x = sw - WIDTH(c); Err adamsgaard.dk 70 i if (*y > sh) Err adamsgaard.dk 70 i *y = sh - HEIGHT(c); Err adamsgaard.dk 70 i- if (*x + *w + 2 * *bw < 0) Err adamsgaard.dk 70 i+ if (*x + *w + 2 * c->bw < 0) Err adamsgaard.dk 70 i *x = 0; Err adamsgaard.dk 70 i- if (*y + *h + 2 * *bw < 0) Err adamsgaard.dk 70 i+ if (*y + *h + 2 * c->bw < 0) Err adamsgaard.dk 70 i *y = 0; Err adamsgaard.dk 70 i } else { Err adamsgaard.dk 70 i if (*x >= m->wx + m->ww) Err adamsgaard.dk 70 i *x = m->wx + m->ww - WIDTH(c); Err adamsgaard.dk 70 i if (*y >= m->wy + m->wh) Err adamsgaard.dk 70 i *y = m->wy + m->wh - HEIGHT(c); Err adamsgaard.dk 70 i- if (*x + *w + 2 * *bw <= m->wx) Err adamsgaard.dk 70 i+ if (*x + *w + 2 * c->bw <= m->wx) Err adamsgaard.dk 70 i *x = m->wx; Err adamsgaard.dk 70 i- if (*y + *h + 2 * *bw <= m->wy) Err adamsgaard.dk 70 i+ if (*y + *h + 2 * c->bw <= m->wy) Err adamsgaard.dk 70 i *y = m->wy; Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i if (*h < bh) Err adamsgaard.dk 70 it@@ -391,7 +391,7 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int *bw, int interact) Err adamsgaard.dk 70 i if (c->maxh) Err adamsgaard.dk 70 i *h = MIN(*h, c->maxh); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i- return *x != c->x || *y != c->y || *w != c->w || *h != c->h || *bw != c->bw; Err adamsgaard.dk 70 i+ return *x != c->x || *y != c->y || *w != c->w || *h != c->h; Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 it@@ -411,18 +411,9 @@ arrange(Monitor *m) Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 i arrangemon(Monitor *m) Err adamsgaard.dk 70 i { Err adamsgaard.dk 70 i- Client *c; Err adamsgaard.dk 70 i- Err adamsgaard.dk 70 i strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol); Err adamsgaard.dk 70 i if (m->lt[m->sellt]->arrange) Err adamsgaard.dk 70 i m->lt[m->sellt]->arrange(m); Err adamsgaard.dk 70 i- else Err adamsgaard.dk 70 i- /* float case */ Err adamsgaard.dk 70 i- for (c = selmon->clients; c; c = c->next) Err adamsgaard.dk 70 i- if (ISVISIBLE(c) && c->bw == 0) Err adamsgaard.dk 70 i- resize(c, c->x, c->y, Err adamsgaard.dk 70 i- c->w - 2*borderpx, c->h - 2*borderpx, Err adamsgaard.dk 70 i- borderpx, 0); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 it@@ -597,7 +588,7 @@ configurenotify(XEvent *e) Err adamsgaard.dk 70 i for (m = mons; m; m = m->next) { Err adamsgaard.dk 70 i for (c = m->clients; c; c = c->next) Err adamsgaard.dk 70 i if (c->isfullscreen) Err adamsgaard.dk 70 i- resizeclient(c, m->mx, m->my, m->mw, m->mh, 0); Err adamsgaard.dk 70 i+ resizeclient(c, m->mx, m->my, m->mw, m->mh); Err adamsgaard.dk 70 i XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i focus(NULL); Err adamsgaard.dk 70 it@@ -1182,7 +1173,7 @@ monocle(Monitor *m) Err adamsgaard.dk 70 i if (n > 0) /* override layout symbol */ Err adamsgaard.dk 70 i snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n); Err adamsgaard.dk 70 i for (c = nexttiled(m->clients); c; c = nexttiled(c->next)) Err adamsgaard.dk 70 i- resize(c, m->wx, m->wy, m->ww, m->wh, 0, 0); Err adamsgaard.dk 70 i+ resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 it@@ -1250,7 +1241,7 @@ movemouse(const Arg *arg) Err adamsgaard.dk 70 i && (abs(nx - c->x) > snap || abs(ny - c->y) > snap)) Err adamsgaard.dk 70 i togglefloating(NULL); Err adamsgaard.dk 70 i if (!selmon->lt[selmon->sellt]->arrange || c->isfloating) Err adamsgaard.dk 70 i- resize(c, nx, ny, c->w, c->h, c->bw, 1); Err adamsgaard.dk 70 i+ resize(c, nx, ny, c->w, c->h, 1); Err adamsgaard.dk 70 i break; Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i } while (ev.type != ButtonRelease); Err adamsgaard.dk 70 it@@ -1336,14 +1327,14 @@ recttomon(int x, int y, int w, int h) Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 i-resize(Client *c, int x, int y, int w, int h, int interact, int bw) Err adamsgaard.dk 70 i+resize(Client *c, int x, int y, int w, int h, int interact) Err adamsgaard.dk 70 i { Err adamsgaard.dk 70 i- if (applysizehints(c, &x, &y, &w, &h, &bw, interact)) Err adamsgaard.dk 70 i- resizeclient(c, x, y, w, h, bw); Err adamsgaard.dk 70 i+ if (applysizehints(c, &x, &y, &w, &h, interact)) Err adamsgaard.dk 70 i+ resizeclient(c, x, y, w, h); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 i-resizeclient(Client *c, int x, int y, int w, int h, int bw) Err adamsgaard.dk 70 i+resizeclient(Client *c, int x, int y, int w, int h) Err adamsgaard.dk 70 i { Err adamsgaard.dk 70 i XWindowChanges wc; Err adamsgaard.dk 70 i Err adamsgaard.dk 70 it@@ -1351,8 +1342,7 @@ resizeclient(Client *c, int x, int y, int w, int h, int bw) Err adamsgaard.dk 70 i c->oldy = c->y; c->y = wc.y = y; Err adamsgaard.dk 70 i c->oldw = c->w; c->w = wc.width = w; Err adamsgaard.dk 70 i c->oldh = c->h; c->h = wc.height = h; Err adamsgaard.dk 70 i- c->oldbw = c->bw; Err adamsgaard.dk 70 i- c->bw = wc.border_width = bw; Err adamsgaard.dk 70 i+ wc.border_width = c->bw; Err adamsgaard.dk 70 i XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc); Err adamsgaard.dk 70 i configure(c); Err adamsgaard.dk 70 i XSync(dpy, False); Err adamsgaard.dk 70 it@@ -1401,7 +1391,7 @@ resizemouse(const Arg *arg) Err adamsgaard.dk 70 i togglefloating(NULL); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i if (!selmon->lt[selmon->sellt]->arrange || c->isfloating) Err adamsgaard.dk 70 i- resize(c, c->x, c->y, nw, nh, c->bw, 1); Err adamsgaard.dk 70 i+ resize(c, c->x, c->y, nw, nh, 1); Err adamsgaard.dk 70 i break; Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i } while (ev.type != ButtonRelease); Err adamsgaard.dk 70 it@@ -1548,8 +1538,10 @@ setfullscreen(Client *c, int fullscreen) Err adamsgaard.dk 70 i PropModeReplace, (unsigned char*)&netatom[NetWMFullscreen], 1); Err adamsgaard.dk 70 i c->isfullscreen = 1; Err adamsgaard.dk 70 i c->oldstate = c->isfloating; Err adamsgaard.dk 70 i+ c->oldbw = c->bw; Err adamsgaard.dk 70 i+ c->bw = 0; Err adamsgaard.dk 70 i c->isfloating = 1; Err adamsgaard.dk 70 i- resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh, 0); Err adamsgaard.dk 70 i+ resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh); Err adamsgaard.dk 70 i XRaiseWindow(dpy, c->win); Err adamsgaard.dk 70 i } else if (!fullscreen && c->isfullscreen){ Err adamsgaard.dk 70 i XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, Err adamsgaard.dk 70 it@@ -1561,7 +1553,7 @@ setfullscreen(Client *c, int fullscreen) Err adamsgaard.dk 70 i c->y = c->oldy; Err adamsgaard.dk 70 i c->w = c->oldw; Err adamsgaard.dk 70 i c->h = c->oldh; Err adamsgaard.dk 70 i- resizeclient(c, c->x, c->y, c->w, c->h, c->bw); Err adamsgaard.dk 70 i+ resizeclient(c, c->x, c->y, c->w, c->h); Err adamsgaard.dk 70 i arrange(c->mon); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 it@@ -1688,7 +1680,7 @@ showhide(Client *c) Err adamsgaard.dk 70 i /* show clients top down */ Err adamsgaard.dk 70 i XMoveWindow(dpy, c->win, c->x, c->y); Err adamsgaard.dk 70 i if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen) Err adamsgaard.dk 70 i- resize(c, c->x, c->y, c->w, c->h, c->bw, 0); Err adamsgaard.dk 70 i+ resize(c, c->x, c->y, c->w, c->h, 0); Err adamsgaard.dk 70 i showhide(c->snext); Err adamsgaard.dk 70 i } else { Err adamsgaard.dk 70 i /* hide clients bottom up */ Err adamsgaard.dk 70 it@@ -1742,31 +1734,26 @@ tagmon(const Arg *arg) Err adamsgaard.dk 70 i void Err adamsgaard.dk 70 i tile(Monitor *m) Err adamsgaard.dk 70 i { Err adamsgaard.dk 70 i- unsigned int i, n, h, mw, my, ty, bw; Err adamsgaard.dk 70 i+ unsigned int i, n, h, mw, my, ty; Err adamsgaard.dk 70 i Client *c; Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); Err adamsgaard.dk 70 i if (n == 0) Err adamsgaard.dk 70 i return; Err adamsgaard.dk 70 i Err adamsgaard.dk 70 i- if (n == 1) Err adamsgaard.dk 70 i- bw = 0; Err adamsgaard.dk 70 i- else Err adamsgaard.dk 70 i- bw = borderpx; Err adamsgaard.dk 70 i- Err adamsgaard.dk 70 i if (n > m->nmaster) Err adamsgaard.dk 70 i mw = m->nmaster ? m->ww * m->mfact : 0; Err adamsgaard.dk 70 i else Err adamsgaard.dk 70 i mw = m->ww; Err adamsgaard.dk 70 i- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) Err adamsgaard.dk 70 i+ for (i = 0, my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) Err adamsgaard.dk 70 i if (i < m->nmaster) { Err adamsgaard.dk 70 i h = (m->wh - my) / (MIN(n, m->nmaster) - i); Err adamsgaard.dk 70 i- resize(c, m->wx, m->wy + my, mw - 2*bw, h - 2*bw, bw, 0); Err adamsgaard.dk 70 i+ resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); Err adamsgaard.dk 70 i if (my + HEIGHT(c) < m->wh) Err adamsgaard.dk 70 i my += HEIGHT(c); Err adamsgaard.dk 70 i } else { Err adamsgaard.dk 70 i h = (m->wh - ty) / (n - i); Err adamsgaard.dk 70 i- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - 2*bw, h - 2*bw, bw, 0); Err adamsgaard.dk 70 i+ resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); Err adamsgaard.dk 70 i if (ty + HEIGHT(c) < m->wh) Err adamsgaard.dk 70 i ty += HEIGHT(c); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 it@@ -1791,9 +1778,7 @@ togglefloating(const Arg *arg) Err adamsgaard.dk 70 i selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed; Err adamsgaard.dk 70 i if (selmon->sel->isfloating) Err adamsgaard.dk 70 i resize(selmon->sel, selmon->sel->x, selmon->sel->y, Err adamsgaard.dk 70 i- selmon->sel->w - 2 * (borderpx - selmon->sel->bw), Err adamsgaard.dk 70 i- selmon->sel->h - 2 * (borderpx - selmon->sel->bw), Err adamsgaard.dk 70 i- borderpx, 0); Err adamsgaard.dk 70 i+ selmon->sel->w, selmon->sel->h, 0); Err adamsgaard.dk 70 i arrange(selmon); Err adamsgaard.dk 70 i } Err adamsgaard.dk 70 i Err adamsgaard.dk 70 .