commit d86b0a5771ec7f65f605a18b4ddebd54f7479113
Author: Martin Tournoij <[email protected]>
Date:   Sun Oct 10 15:07:29 2021 +0800

    [dmenu][patch] Add allow-color-font patch

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
new file mode 100644
index 00000000..767b4666
--- /dev/null
+++ 
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
new file mode 100644
index 00000000..73c04c45
--- /dev/null
+++ 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


Reply via email to