also, don't set the font all the time 724f7214
Anselm R. Garbe · 2007-03-02 15:16 3 file(s) · +7 −12
config.mk +1 −1
1 1
# dmenu version
2 -
VERSION = 2.6
2 +
VERSION = 2.7
3 3
4 4
# Customize below to fit your system
5 5
draw.c +4 −11
12 12
	int x, y, w, h;
13 13
	static char buf[256];
14 14
	unsigned int len, olen;
15 -
	XGCValues gcv;
16 15
	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
17 16
18 17
	XSetForeground(dpy, dc.gc, col[ColBG]);
41 40
	}
42 41
	if(w > dc.w)
43 42
		return; /* too long */
44 -
	gcv.foreground = col[ColFG];
45 -
	if(dc.font.set) {
46 -
		XChangeGC(dpy, dc.gc, GCForeground, &gcv);
47 -
		XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc,
48 -
				x, y, buf, len);
49 -
	}
50 -
	else {
51 -
		gcv.font = dc.font.xfont->fid;
52 -
		XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
43 +
	XSetForeground(dpy, dc.gc, col[ColFG]);
44 +
	if(dc.font.set)
45 +
		XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
46 +
	else
53 47
		XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
54 -
	}
55 48
}
56 49
57 50
unsigned int
main.c +2 −0
493 493
	dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen));
494 494
	dc.gc = XCreateGC(dpy, root, 0, 0);
495 495
	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
496 +
	if(!dc.font.set)
497 +
		XSetFont(dpy, dc.gc, dc.font.xfont->fid);
496 498
	if(maxname)
497 499
		cmdw = textw(maxname);
498 500
	if(cmdw > mw / 3)