Browse Source

Prepare 6.2 release.

Anselm R Garbe 3 years ago
parent
commit
cb3f58ad06
3 changed files with 17 additions and 3 deletions
  1. 1
    1
      LICENSE
  2. 1
    1
      config.mk
  3. 15
    1
      drw.c

+ 1
- 1
LICENSE View File

@@ -1,6 +1,6 @@
1 1
 MIT/X Consortium License
2 2
 
3
-© 2006-2017 Anselm R Garbe <anselm@garbe.us>
3
+© 2006-2019 Anselm R Garbe <anselm@garbe.ca>
4 4
 © 2006-2009 Jukka Salmi <jukka at salmi dot ch>
5 5
 © 2006-2007 Sander van Dijk <a dot h dot vandijk at gmail dot com>
6 6
 © 2007-2011 Peter Hartlich <sgkkr at hartlich dot com>

+ 1
- 1
config.mk View File

@@ -1,5 +1,5 @@
1 1
 # dwm version
2
-VERSION = 6.1
2
+VERSION = 6.2
3 3
 
4 4
 # Customize below to fit your system
5 5
 

+ 15
- 1
drw.c View File

@@ -132,6 +132,19 @@ xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern)
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,7 +213,7 @@ drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
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,6 +350,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
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);

Loading…
Cancel
Save