commit cb3f58ad06993f7ef3a7d8f61468012e2b786cab from: Anselm R Garbe date: Sat Feb 2 12:50:42 2019 UTC Prepare 6.2 release. commit - b69c870a3076d78ab595ed1cd4b41cf6b03b2610 commit + cb3f58ad06993f7ef3a7d8f61468012e2b786cab blob - 954cdc9f878bf9ddc7b561cc5e1139ccb4cd4efb blob + d221f09d9c816dd03a49694ffc5abdc0960f6083 --- LICENSE +++ LICENSE @@ -1,6 +1,6 @@ MIT/X Consortium License -© 2006-2017 Anselm R Garbe +© 2006-2019 Anselm R Garbe © 2006-2009 Jukka Salmi © 2006-2007 Sander van Dijk © 2007-2011 Peter Hartlich blob - 25e2685156a9e1754228ac87e22aa0f98307f0b7 blob + 6d36cb7a983878038342d7d1f1ee98f3b7bd62b7 --- config.mk +++ config.mk @@ -1,5 +1,5 @@ # dwm version -VERSION = 6.1 +VERSION = 6.2 # Customize below to fit your system blob - c638323193061df01a03e82f12e9bc9aad60f7ce blob + 8fd1ca4c5a8257ca9f4813cd651b38250e2feac0 --- drw.c +++ drw.c @@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern 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_ 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, unsig 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);