Introduction
Introduction Statistics Contact Development Disclaimer Help
Workaround Xft BadLength X error - libsl - shared code master of various suckle…
git clone git://git.suckless.org/libsl
Log
Files
Refs
LICENSE
---
commit 53ebcb48c6b12882c6dbe352ee43c96b2fb01b84
parent e1132a979e39d6cdb8c34ea5496c901a5b8c2d79
Author: Thomas Spurden <[email protected]>
Date: Wed, 16 Jan 2019 21:51:30 +0000
Workaround Xft BadLength X error
Modify the fontconfig pattern to prefer non-color fonts, and discard any
selected font which has the color flag set. Using these fonts with Xft is just
going to generate a BadLength X error.
Diffstat:
M drw.c | 14 ++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/drw.c b/drw.c
@@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fo…
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.…
+ * 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) == FcResultMa…
+ XftFontClose(drw->dpy, xfont);
+ return NULL;
+ }
+
font = ecalloc(1, sizeof(Fnt));
font->xfont = xfont;
font->pattern = pattern;
@@ -337,6 +350,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned i…
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);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.