diff options
-rw-r--r-- | LICENSE | 4 | ||||
-rw-r--r-- | config.mk | 2 | ||||
-rw-r--r-- | drw.c | 16 |
3 files changed, 18 insertions, 4 deletions
@@ -1,6 +1,6 @@ | |||
1 | MIT/X Consortium License | 1 | MIT/X Consortium License |
2 | 2 | ||
3 | © 2006-2014 Anselm R Garbe <anselm@garbe.us> | 3 | © 2006-2019 Anselm R Garbe <anselm@garbe.ca> |
4 | © 2006-2008 Sander van Dijk <a.h.vandijk@gmail.com> | 4 | © 2006-2008 Sander van Dijk <a.h.vandijk@gmail.com> |
5 | © 2006-2007 Michał Janeczek <janeczek@gmail.com> | 5 | © 2006-2007 Michał Janeczek <janeczek@gmail.com> |
6 | © 2007 Kris Maglione <jg@suckless.org> | 6 | © 2007 Kris Maglione <jg@suckless.org> |
@@ -8,7 +8,7 @@ MIT/X Consortium License | |||
8 | © 2009 Markus Schnalke <meillo@marmaro.de> | 8 | © 2009 Markus Schnalke <meillo@marmaro.de> |
9 | © 2009 Evan Gates <evan.gates@gmail.com> | 9 | © 2009 Evan Gates <evan.gates@gmail.com> |
10 | © 2010-2012 Connor Lane Smith <cls@lubutu.com> | 10 | © 2010-2012 Connor Lane Smith <cls@lubutu.com> |
11 | © 2014-2018 Hiltjo Posthuma <hiltjo@codemadness.org> | 11 | © 2014-2019 Hiltjo Posthuma <hiltjo@codemadness.org> |
12 | © 2015-2018 Quentin Rameau <quinq@fifth.space> | 12 | © 2015-2018 Quentin Rameau <quinq@fifth.space> |
13 | 13 | ||
14 | Permission is hereby granted, free of charge, to any person obtaining a | 14 | Permission is hereby granted, free of charge, to any person obtaining a |
@@ -1,5 +1,5 @@ | |||
1 | # dmenu version | 1 | # dmenu version |
2 | VERSION = 4.8 | 2 | VERSION = 4.9 |
3 | 3 | ||
4 | # paths | 4 | # paths |
5 | PREFIX = /usr/local | 5 | PREFIX = /usr/local |
@@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern) | |||
132 | die("no font specified."); | 132 | die("no font specified."); |
133 | } | 133 | } |
134 | 134 | ||
135 | /* Do not allow using color fonts. This is a workaround for a BadLength | ||
136 | * error from Xft with color glyphs. Modelled on the Xterm workaround. See | ||
137 | * https://bugzilla.redhat.com/show_bug.cgi?id=1498269 | ||
138 | * https://lists.suckless.org/dev/1701/30932.html | ||
139 | * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=916349 | ||
140 | * and lots more all over the internet. | ||
141 | */ | ||
142 | FcBool iscol; | ||
143 | if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) { | ||
144 | XftFontClose(drw->dpy, xfont); | ||
145 | return NULL; | ||
146 | } | ||
147 | |||
135 | font = ecalloc(1, sizeof(Fnt)); | 148 | font = ecalloc(1, sizeof(Fnt)); |
136 | font->xfont = xfont; | 149 | font->xfont = xfont; |
137 | font->pattern = pattern; | 150 | font->pattern = pattern; |
@@ -200,7 +213,7 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount) | |||
200 | Clr *ret; | 213 | Clr *ret; |
201 | 214 | ||
202 | /* need at least two colors for a scheme */ | 215 | /* need at least two colors for a scheme */ |
203 | if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(Clr)))) | 216 | if (!drw || !clrnames || clrcount < 2 || !(ret = ecalloc(clrcount, sizeof(XftColor)))) |
204 | return NULL; | 217 | return NULL; |
205 | 218 | ||
206 | for (i = 0; i < clrcount; i++) | 219 | for (i = 0; i < clrcount; i++) |
@@ -337,6 +350,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp | |||
337 | fcpattern = FcPatternDuplicate(drw->fonts->pattern); | 350 | fcpattern = FcPatternDuplicate(drw->fonts->pattern); |
338 | FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset); | 351 | FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset); |
339 | FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue); | 352 | FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue); |
353 | FcPatternAddBool(fcpattern, FC_COLOR, FcFalse); | ||
340 | 354 | ||
341 | FcConfigSubstitute(NULL, fcpattern, FcMatchPattern); | 355 | FcConfigSubstitute(NULL, fcpattern, FcMatchPattern); |
342 | FcDefaultSubstitute(fcpattern); | 356 | FcDefaultSubstitute(fcpattern); |