commit d86b0a5771ec7f65f605a18b4ddebd54f7479113
parent 17419fc3ba46b361cab228b0346d147b92c3302e
Author: Martin Tournoij <martin@arp242.net>
Date: Sun, 10 Oct 2021 15:07:29 +0800
[dmenu][patch] Add allow-color-font patch
Diffstat:
2 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/tools.suckless.org/dmenu/patches/allow-color-font/dmenu-allow-color-font-5.0.diff b/tools.suckless.org/dmenu/patches/allow-color-font/dmenu-allow-color-font-5.0.diff
@@ -0,0 +1,32 @@
+diff --git drw.c drw.c
+index 4cdbcbe..7a5bc0d 100644
+--- drw.c
++++ drw.c
+@@ -133,19 +133,6 @@ 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;
+@@ -351,7 +338,6 @@ 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);
diff --git a/tools.suckless.org/dmenu/patches/allow-color-font/index.md b/tools.suckless.org/dmenu/patches/allow-color-font/index.md
@@ -0,0 +1,24 @@
+Allow Color font
+================
+
+Description
+-----------
+By default dmenu will block using colour fonts because a bug in libXft [will
+cause dmenu to crash][bug]. However, if you build it against a [patched version
+of libXft][patch] it will work fine, but you need to remove the special
+condition in dmenu.
+
+This simple patch removes that check, so colour fonts work.
+
+Again, if you don't patch libXft then dmenu will *crash*.
+
+[bug]: https://gitlab.freedesktop.org/xorg/lib/libxft/-/issues/6
+[patch]: https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_requests/1
+
+Download
+--------
+* For 5.0: [dmenu-allow-color-font-5.0.diff](dmenu-allow-color-font-5.0.diff)
+
+Authors
+-------
+* Martin Tournoij