[wiki] [sites] [dwm][patch][cfacts] fix patch failure || iofq

From: <git_AT_suckless.org>
Date: Sun, 13 Sep 2020 05:50:48 +0200

commit 41bbaa5f1cd6b21f999a2161347e7ea6fcccd9a1
Author: iofq <cjriddz_AT_protonmail.com>
Date: Sat Sep 12 22:47:19 2020 -0500

    [dwm][patch][cfacts] fix patch failure

diff --git a/dwm.suckless.org/patches/cfacts/dwm-cfacts-20200913-61bb8b2.diff b/dwm.suckless.org/patches/cfacts/dwm-cfacts-20200913-61bb8b2.diff
new file mode 100644
index 00000000..bb70e138
--- /dev/null
+++ b/dwm.suckless.org/patches/cfacts/dwm-cfacts-20200913-61bb8b2.diff
_AT_@ -0,0 +1,117 @@
+From c32a879432573d71dec7fcb4bf68927d2f4cdf10 Mon Sep 17 00:00:00 2001
+From: iofq <cjriddz_AT_protonmail.com>
+Date: Sat, 12 Sep 2020 22:28:09 -0500
+Subject: [PATCH] Fixed 'cfacts' patch failure due to upstream commit
+ 'f09418bbb...'
+
+---
+ config.def.h | 3 +++
+ dwm.c | 34 +++++++++++++++++++++++++++++++---
+ 2 files changed, 34 insertions(+), 3 deletions(-)
+
+diff --git a/config.def.h b/config.def.h
+index 1c0b587..83910c1 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -70,6 +70,9 @@ static Key keys[] = {
+ { MODKEY, XK_d, incnmaster, {.i = -1 } },
+ { MODKEY, XK_h, setmfact, {.f = -0.05} },
+ { MODKEY, XK_l, setmfact, {.f = +0.05} },
++ { MODKEY|ShiftMask, XK_h, setcfact, {.f = +0.25} },
++ { MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} },
++ { MODKEY|ShiftMask, XK_o, setcfact, {.f = 0.00} },
+ { MODKEY, XK_Return, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY|ShiftMask, XK_c, killclient, {0} },
+diff --git a/dwm.c b/dwm.c
+index 664c527..5233229 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -87,6 +87,7 @@ typedef struct Client Client;
+ struct Client {
+ char name[256];
+ float mina, maxa;
++ float cfact;
+ int x, y, w, h;
+ int oldx, oldy, oldw, oldh;
+ int basew, baseh, incw, inch, maxw, maxh, minw, minh;
+_AT_@ -201,6 +202,7 @@ static void setclientstate(Client *c, long state);
+ static void setfocus(Client *c);
+ static void setfullscreen(Client *c, int fullscreen);
+ static void setlayout(const Arg *arg);
++static void setcfact(const Arg *arg);
+ static void setmfact(const Arg *arg);
+ static void setup(void);
+ static void seturgent(Client *c, int urg);
+_AT_@ -1030,6 +1032,7 @@ manage(Window w, XWindowAttributes *wa)
+ c->w = c->oldw = wa->width;
+ c->h = c->oldh = wa->height;
+ c->oldbw = wa->border_width;
++ c->cfact = 1.0;
+
+ updatetitle(c);
+ if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
+_AT_@ -1512,6 +1515,23 @@ setlayout(const Arg *arg)
+ drawbar(selmon);
+ }
+
++void setcfact(const Arg *arg) {
++ float f;
++ Client *c;
++
++ c = selmon->sel;
++
++ if(!arg || !c || !selmon->lt[selmon->sellt]->arrange)
++ return;
++ f = arg->f + c->cfact;
++ if(arg->f == 0.0)
++ f = 1.0;
++ else if(f < 0.25 || f > 4.0)
++ return;
++ c->cfact = f;
++ arrange(selmon);
++}
++
+ /* arg > 1.0 will set mfact absolutely */
+ void
+ setmfact(const Arg *arg)
+_AT_@ -1675,9 +1695,15 @@ void
+ tile(Monitor *m)
+ {
+ unsigned int i, n, h, mw, my, ty;
++ float mfacts = 0, sfacts = 0;
+ Client *c;
+
+- for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
++ for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++) {
++ if (n < m->nmaster)
++ mfacts += c->cfact;
++ else
++ sfacts += c->cfact;
++ }
+ if (n == 0)
+ return;
+
+_AT_@ -1687,15 +1713,17 @@ tile(Monitor *m)
+ 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);
++ h = (m->wh - my) * (c->cfact / mfacts);
+ resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0);
+ if (my + HEIGHT(c) < m->wh)
+ my += HEIGHT(c);
++ mfacts -= c->cfact;
+ } else {
+- h = (m->wh - ty) / (n - i);
++ h = (m->wh - ty) * (c->cfact / sfacts);
+ resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0);
+ if (ty + HEIGHT(c) < m->wh)
+ ty += HEIGHT(c);
++ sfacts -= c->cfact;
+ }
+ }
+
+--
+2.28.0
+
diff --git a/dwm.suckless.org/patches/cfacts/index.md b/dwm.suckless.org/patches/cfacts/index.md
index c312f2b3..a45a1a19 100644
--- a/dwm.suckless.org/patches/cfacts/index.md
+++ b/dwm.suckless.org/patches/cfacts/index.md
_AT_@ -45,6 +45,7 @@ Download
 * [dwm-cfacts-6.1.diff](dwm-cfacts-6.1.diff)
 * [dwm-cfacts-6.2.diff](dwm-cfacts-6.2.diff)
 * [dwm-cfacts-6.2-1.diff](dwm-cfacts-6.2-1.diff)
+* [dwm-cfacts-20200913-61bb8b2.diff](dwm-cfacts-20200913-61bb8b2.diff)
 
 Additional layouts with cfacts
 ------------------------------
Received on Sun Sep 13 2020 - 05:50:48 CEST

This archive was generated by hypermail 2.3.0 : Sun Sep 13 2020 - 06:00:41 CEST