diff options
| -rw-r--r-- | dmenu-allow-color-font-5.0.diff | 32 | ||||
| -rw-r--r-- | drw.c | 4 | 
2 files changed, 35 insertions, 1 deletions
| 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); @@ -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); | 
