summaryrefslogtreecommitdiffstats
path: root/desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch
diff options
context:
space:
mode:
author Dave Woodfall2019-04-15 18:55:24 +0200
committer Willy Sudiarto Raharjo2019-04-20 03:20:55 +0200
commit718e23b5c6f511431a8a72a31eb7f27af71b0833 (patch)
tree5c76d4009719352f0075320f86bac1188dc7cf92 /desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch
parentf53d530a7a105a43801b83f4eb2866a5ee486950 (diff)
downloadslackbuilds-718e23b5c6f511431a8a72a31eb7f27af71b0833.tar.gz
desktop/dwm: Add new options to slackbuild. Fix 6.2 update patch.
Diffstat (limited to 'desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch')
-rw-r--r--desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch b/desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch
new file mode 100644
index 0000000000..22da3facea
--- /dev/null
+++ b/desktop/dwm/sbo-patches/0001-Prepare-6.2-release.patch
@@ -0,0 +1,45 @@
+diff --git a/drw.c b/drw.c
+index c638323..8fd1ca4 100644
+--- a/drw.c
++++ b/drw.c
+@@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
+ die("no font specified.");
+ }
+
++ /* Do not allow using color fonts. This is a workaround for a BadLength
++ * error from Xft with color glyphs. Modelled on the Xterm workaround. See
++ * https://bugzilla.redhat.com/show_bug.cgi?id=1498269
++ * https://lists.suckless.org/dev/1701/30932.html
++ * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916349
++ * and lots more all over the internet.
++ */
++ FcBool iscol;
++ if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) {
++ XftFontClose(drw->dpy, xfont);
++ return NULL;
++ }
++
+ font = ecalloc(1, sizeof(Fnt));
+ font->xfont = xfont;
+ font->pattern = pattern;
+@@ -200,7 +213,7 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
+ Clr *ret;
+
+ /* need at least two colors for a scheme */
+- if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(Clr))))
++ if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(XftColor))))
+ return NULL;
+
+ for (i = 0; i < clrcount; i++)
+@@ -337,6 +350,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
+ fcpattern = FcPatternDuplicate(drw->fonts->pattern);
+ FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset);
+ FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue);
++ FcPatternAddBool(fcpattern, FC_COLOR, FcFalse);
+
+ FcConfigSubstitute(NULL, fcpattern, FcMatchPattern);
+ FcDefaultSubstitute(fcpattern);
+
+--------------false--
+
+