fix font width calculations
This commit is contained in:
		
							
								
								
									
										2
									
								
								drw.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								drw.c
									
									
									
									
									
								
							@ -379,7 +379,7 @@ unsigned int
 | 
				
			|||||||
drw_fontset_getwidth(Drw *drw, const char *text) {
 | 
					drw_fontset_getwidth(Drw *drw, const char *text) {
 | 
				
			||||||
	if (!drw || !drw->fonts || !text)
 | 
						if (!drw || !drw->fonts || !text)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	return drw_text(drw, 0, 0, 0, 0, text, 0) + drw->fonts->h;
 | 
						return drw_text(drw, 0, 0, 0, 0, text, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										7
									
								
								sent.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								sent.c
									
									
									
									
									
								
							@ -312,17 +312,18 @@ void pngdraw(Image *img)
 | 
				
			|||||||
void getfontsize(char *str, unsigned int *width, unsigned int *height)
 | 
					void getfontsize(char *str, unsigned int *width, unsigned int *height)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	size_t i;
 | 
						size_t i;
 | 
				
			||||||
	size_t len = strlen(str);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < NUMFONTSCALES; i++) {
 | 
						for (i = 0; i < NUMFONTSCALES; i++) {
 | 
				
			||||||
		drw_setfontset(d, fonts[i]);
 | 
							drw_setfontset(d, fonts[i]);
 | 
				
			||||||
		drw_font_getexts(fonts[i], str, len, width, height);
 | 
							*height = fonts[i]->h;
 | 
				
			||||||
 | 
							*width = drw_fontset_getwidth(d, str);
 | 
				
			||||||
		if (*width  > xw.uw || *height > xw.uh)
 | 
							if (*width  > xw.uw || *height > xw.uh)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (i > 0) {
 | 
						if (i > 0) {
 | 
				
			||||||
		drw_setfontset(d, fonts[i-1]);
 | 
							drw_setfontset(d, fonts[i-1]);
 | 
				
			||||||
		drw_font_getexts(fonts[i-1], str, len, width, height);
 | 
							*height = fonts[i-1]->h;
 | 
				
			||||||
 | 
							*width = drw_fontset_getwidth(d, str);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	*width += d->fonts->h;
 | 
						*width += d->fonts->h;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user