summarylogtreecommitdiffstats
path: root/dwm-uselessgap-6.2.diff
diff options
context:
space:
mode:
authorJean-Francois Chevrette2020-03-28 18:25:48 -0400
committerJean-Francois Chevrette2020-03-28 18:25:48 -0400
commitc60117e83efbbb05b021436c9d9cf5dda72554bb (patch)
tree1e08b5dc353f469c40650d9089055da759878d84 /dwm-uselessgap-6.2.diff
parent06f8b53f4b76b52bc8028067b8b6e5dcbfd118a7 (diff)
downloadaur-dwm-jfchevrette.tar.gz
add patches
Diffstat (limited to 'dwm-uselessgap-6.2.diff')
-rw-r--r--dwm-uselessgap-6.2.diff81
1 files changed, 81 insertions, 0 deletions
diff --git a/dwm-uselessgap-6.2.diff b/dwm-uselessgap-6.2.diff
new file mode 100644
index 000000000000..d9cacbecb6d1
--- /dev/null
+++ b/dwm-uselessgap-6.2.diff
@@ -0,0 +1,81 @@
+From 58a5ece9406ca6c90dc362617c065e4aac19417f Mon Sep 17 00:00:00 2001
+From: Cyril Cressent <cyril@cressent.org>
+Date: Wed, 3 Jul 2019 21:33:45 -0700
+Subject: [PATCH] Port the uselessgap patch to 6.2
+
+---
+ config.def.h | 1 +
+ dwm.c | 36 ++++++++++++++++++++++++++++++------
+ 2 files changed, 31 insertions(+), 6 deletions(-)
+
+diff --git a/config.def.h b/config.def.h
+index 1c0b587..b11471d 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -2,6 +2,7 @@
+
+ /* appearance */
+ static const unsigned int borderpx = 1; /* border pixel of windows */
++static const unsigned int gappx = 6; /* gaps between windows */
+ static const unsigned int snap = 32; /* snap pixel */
+ static const int showbar = 1; /* 0 means no bar */
+ static const int topbar = 1; /* 0 means bottom bar */
+diff --git a/dwm.c b/dwm.c
+index 4465af1..4545e05 100644
+--- a/dwm.c
++++ b/dwm.c
+@@ -52,8 +52,8 @@
+ #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
+ #define LENGTH(X) (sizeof X / sizeof X[0])
+ #define MOUSEMASK (BUTTONMASK|PointerMotionMask)
+-#define WIDTH(X) ((X)->w + 2 * (X)->bw)
+-#define HEIGHT(X) ((X)->h + 2 * (X)->bw)
++#define WIDTH(X) ((X)->w + 2 * (X)->bw + gappx)
++#define HEIGHT(X) ((X)->h + 2 * (X)->bw + gappx)
+ #define TAGMASK ((1 << LENGTH(tags)) - 1)
+ #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
+
+@@ -1276,12 +1276,36 @@ void
+ resizeclient(Client *c, int x, int y, int w, int h)
+ {
+ XWindowChanges wc;
++ unsigned int n;
++ unsigned int gapoffset;
++ unsigned int gapincr;
++ Client *nbc;
+
+- c->oldx = c->x; c->x = wc.x = x;
+- c->oldy = c->y; c->y = wc.y = y;
+- c->oldw = c->w; c->w = wc.width = w;
+- c->oldh = c->h; c->h = wc.height = h;
+ wc.border_width = c->bw;
++
++ /* Get number of clients for the selected monitor */
++ for (n = 0, nbc = nexttiled(selmon->clients); nbc; nbc = nexttiled(nbc->next), n++);
++
++ /* Do nothing if layout is floating */
++ if (c->isfloating || selmon->lt[selmon->sellt]->arrange == NULL) {
++ gapincr = gapoffset = 0;
++ } else {
++ /* Remove border and gap if layout is monocle or only one client */
++ if (selmon->lt[selmon->sellt]->arrange == monocle || n == 1) {
++ gapoffset = 0;
++ gapincr = -2 * borderpx;
++ wc.border_width = 0;
++ } else {
++ gapoffset = gappx;
++ gapincr = 2 * gappx;
++ }
++ }
++
++ c->oldx = c->x; c->x = wc.x = x + gapoffset;
++ c->oldy = c->y; c->y = wc.y = y + gapoffset;
++ c->oldw = c->w; c->w = wc.width = w - gapincr;
++ c->oldh = c->h; c->h = wc.height = h - gapincr;
++
+ XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
+ configure(c);
+ XSync(dpy, False);
+--
+2.22.0
+