From a7ac271c71efa6182984af276656644bc1fe7461 Mon Sep 17 00:00:00 2001 From: terminaldweller Date: Thu, 4 Aug 2022 18:59:08 +0430 Subject: added the allow color patch --- dmenu-allow-color-font-5.0.diff | 32 ++++++++++++++++++++++++++++++++ drw.c | 4 +++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 dmenu-allow-color-font-5.0.diff diff --git a/dmenu-allow-color-font-5.0.diff b/dmenu-allow-color-font-5.0.diff new file mode 100644 index 0000000..767b466 --- /dev/null +++ b/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/drw.c b/drw.c index 25e7541..f5fb84d 100644 --- a/drw.c +++ b/drw.c @@ -125,6 +125,7 @@ static Fnt *xfont_create(Drw *drw, const char *fontname, die("no font specified."); } +#if 0 /* 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 @@ -138,6 +139,7 @@ static Fnt *xfont_create(Drw *drw, const char *fontname, XftFontClose(drw->dpy, xfont); return NULL; } +#endif font = ecalloc(1, sizeof(Fnt)); font->xfont = xfont; @@ -331,7 +333,7 @@ int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, fcpattern = FcPatternDuplicate(drw->fonts->pattern); FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset); FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue); - FcPatternAddBool(fcpattern, FC_COLOR, FcFalse); + /* FcPatternAddBool(fcpattern, FC_COLOR, FcFalse); */ FcConfigSubstitute(NULL, fcpattern, FcMatchPattern); FcDefaultSubstitute(fcpattern); -- cgit v1.2.3