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); |
