Prepared 4.9 release.
65be875f
3 file(s) · +18 −4
| 1 | 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 | 4 | © 2006-2008 Sander van Dijk <a.h.vandijk@gmail.com> |
|
| 5 | 5 | © 2006-2007 Michał Janeczek <janeczek@gmail.com> |
|
| 6 | 6 | © 2007 Kris Maglione <jg@suckless.org> |
|
| 8 | 8 | © 2009 Markus Schnalke <meillo@marmaro.de> |
|
| 9 | 9 | © 2009 Evan Gates <evan.gates@gmail.com> |
|
| 10 | 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 | 12 | © 2015-2018 Quentin Rameau <quinq@fifth.space> |
|
| 13 | 13 | ||
| 14 | 14 | Permission is hereby granted, free of charge, to any person obtaining a |
|
| 1 | 1 | # dmenu version |
|
| 2 | - | VERSION = 4.8 |
|
| 2 | + | VERSION = 4.9 |
|
| 3 | 3 | ||
| 4 | 4 | # paths |
|
| 5 | 5 | PREFIX = /usr/local |
| 132 | 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 | 148 | font = ecalloc(1, sizeof(Fnt)); |
|
| 136 | 149 | font->xfont = xfont; |
|
| 137 | 150 | font->pattern = pattern; |
|
| 200 | 213 | Clr *ret; |
|
| 201 | 214 | ||
| 202 | 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 | 217 | return NULL; |
|
| 205 | 218 | ||
| 206 | 219 | for (i = 0; i < clrcount; i++) |
|
| 337 | 350 | fcpattern = FcPatternDuplicate(drw->fonts->pattern); |
|
| 338 | 351 | FcPatternAddCharSet(fcpattern, FC_CHARSET, fccharset); |
|
| 339 | 352 | FcPatternAddBool(fcpattern, FC_SCALABLE, FcTrue); |
|
| 353 | + | FcPatternAddBool(fcpattern, FC_COLOR, FcFalse); |
|
| 340 | 354 | ||
| 341 | 355 | FcConfigSubstitute(NULL, fcpattern, FcMatchPattern); |
|
| 342 | 356 | FcDefaultSubstitute(fcpattern); |
|