also, don't set the font all the time
This commit is contained in:
		@@ -1,5 +1,5 @@
 | 
				
			|||||||
# dmenu version
 | 
					# dmenu version
 | 
				
			||||||
VERSION = 2.6
 | 
					VERSION = 2.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Customize below to fit your system
 | 
					# Customize below to fit your system
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								draw.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								draw.c
									
									
									
									
									
								
							@@ -12,7 +12,6 @@ drawtext(const char *text, unsigned long col[ColLast]) {
 | 
				
			|||||||
	int x, y, w, h;
 | 
						int x, y, w, h;
 | 
				
			||||||
	static char buf[256];
 | 
						static char buf[256];
 | 
				
			||||||
	unsigned int len, olen;
 | 
						unsigned int len, olen;
 | 
				
			||||||
	XGCValues gcv;
 | 
					 | 
				
			||||||
	XRectangle r = { dc.x, dc.y, dc.w, dc.h };
 | 
						XRectangle r = { dc.x, dc.y, dc.w, dc.h };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	XSetForeground(dpy, dc.gc, col[ColBG]);
 | 
						XSetForeground(dpy, dc.gc, col[ColBG]);
 | 
				
			||||||
@@ -41,18 +40,12 @@ drawtext(const char *text, unsigned long col[ColLast]) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	if(w > dc.w)
 | 
						if(w > dc.w)
 | 
				
			||||||
		return; /* too long */
 | 
							return; /* too long */
 | 
				
			||||||
	gcv.foreground = col[ColFG];
 | 
						XSetForeground(dpy, dc.gc, col[ColFG]);
 | 
				
			||||||
	if(dc.font.set) {
 | 
						if(dc.font.set)
 | 
				
			||||||
		XChangeGC(dpy, dc.gc, GCForeground, &gcv);
 | 
							XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
 | 
				
			||||||
		XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc,
 | 
						else
 | 
				
			||||||
				x, y, buf, len);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else {
 | 
					 | 
				
			||||||
		gcv.font = dc.font.xfont->fid;
 | 
					 | 
				
			||||||
		XChangeGC(dpy, dc.gc, GCForeground | GCFont, &gcv);
 | 
					 | 
				
			||||||
		XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
 | 
							XDrawString(dpy, dc.drawable, dc.gc, x, y, buf, len);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned int
 | 
					unsigned int
 | 
				
			||||||
textw(const char *text) {
 | 
					textw(const char *text) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.c
									
									
									
									
									
								
							@@ -493,6 +493,8 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen));
 | 
						dc.drawable = XCreatePixmap(dpy, root, mw, mh, DefaultDepth(dpy, screen));
 | 
				
			||||||
	dc.gc = XCreateGC(dpy, root, 0, 0);
 | 
						dc.gc = XCreateGC(dpy, root, 0, 0);
 | 
				
			||||||
	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
 | 
						XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
 | 
				
			||||||
 | 
						if(!dc.font.set)
 | 
				
			||||||
 | 
							XSetFont(dpy, dc.gc, dc.font.xfont->fid);
 | 
				
			||||||
	if(maxname)
 | 
						if(maxname)
 | 
				
			||||||
		cmdw = textw(maxname);
 | 
							cmdw = textw(maxname);
 | 
				
			||||||
	if(cmdw > mw / 3)
 | 
						if(cmdw > mw / 3)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user