add patch anysize
This commit is contained in:
		
							
								
								
									
										2
									
								
								config.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								config.h
									
									
									
									
									
								
							| @ -6,7 +6,7 @@ | |||||||
|  * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html |  * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  #define FONT "JetBrainsMono Nerd Font Mono" | #define FONT "JetBrainsMono Nerd Font Mono" | ||||||
|  |  | ||||||
| static char *font = FONT":pixelsize=12:antialias=true:autohint=true"; | static char *font = FONT":pixelsize=12:antialias=true:autohint=true"; | ||||||
| static char *font2[] = { | static char *font2[] = { | ||||||
|  | |||||||
							
								
								
									
										56
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								x.c
									
									
									
									
									
								
							| @ -81,6 +81,7 @@ typedef XftGlyphFontSpec GlyphFontSpec; | |||||||
| typedef struct { | typedef struct { | ||||||
| 	int tw, th; /* tty width and height */ | 	int tw, th; /* tty width and height */ | ||||||
| 	int w, h; /* window width and height */ | 	int w, h; /* window width and height */ | ||||||
|  |     int hborderpx, vborderpx; | ||||||
| 	int ch; /* char height */ | 	int ch; /* char height */ | ||||||
| 	int cw; /* char width  */ | 	int cw; /* char width  */ | ||||||
| 	int mode; /* window state/mode flags */ | 	int mode; /* window state/mode flags */ | ||||||
| @ -334,7 +335,7 @@ ttysend(const Arg *arg) | |||||||
| int | int | ||||||
| evcol(XEvent *e) | evcol(XEvent *e) | ||||||
| { | { | ||||||
| 	int x = e->xbutton.x - borderpx; | 	int x = e->xbutton.x - win.hborderpx; | ||||||
| 	LIMIT(x, 0, win.tw - 1); | 	LIMIT(x, 0, win.tw - 1); | ||||||
| 	return x / win.cw; | 	return x / win.cw; | ||||||
| } | } | ||||||
| @ -342,7 +343,7 @@ evcol(XEvent *e) | |||||||
| int | int | ||||||
| evrow(XEvent *e) | evrow(XEvent *e) | ||||||
| { | { | ||||||
| 	int y = e->xbutton.y - borderpx; | 	int y = e->xbutton.y - win.vborderpx; | ||||||
| 	LIMIT(y, 0, win.th - 1); | 	LIMIT(y, 0, win.th - 1); | ||||||
| 	return y / win.ch; | 	return y / win.ch; | ||||||
| } | } | ||||||
| @ -742,6 +743,9 @@ cresize(int width, int height) | |||||||
| 	col = MAX(1, col); | 	col = MAX(1, col); | ||||||
| 	row = MAX(1, row); | 	row = MAX(1, row); | ||||||
|  |  | ||||||
|  |     win.hborderpx = (win.w - col * win.cw) / 2; | ||||||
|  |     win.vborderpx = (win.h - row * win.ch) / 2; | ||||||
|  |  | ||||||
| 	tresize(col, row); | 	tresize(col, row); | ||||||
| 	xresize(col, row); | 	xresize(col, row); | ||||||
| 	ttyresize(win.tw, win.th); | 	ttyresize(win.tw, win.th); | ||||||
| @ -872,8 +876,8 @@ xhints(void) | |||||||
| 	sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize; | 	sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize; | ||||||
| 	sizeh->height = win.h; | 	sizeh->height = win.h; | ||||||
| 	sizeh->width = win.w; | 	sizeh->width = win.w; | ||||||
| 	sizeh->height_inc = win.ch; | 	sizeh->height_inc = 1; | ||||||
| 	sizeh->width_inc = win.cw; | 	sizeh->width_inc = 1; | ||||||
| 	sizeh->base_height = 2 * borderpx; | 	sizeh->base_height = 2 * borderpx; | ||||||
| 	sizeh->base_width = 2 * borderpx; | 	sizeh->base_width = 2 * borderpx; | ||||||
| 	sizeh->min_height = win.ch + 2 * borderpx; | 	sizeh->min_height = win.ch + 2 * borderpx; | ||||||
| @ -1247,8 +1251,8 @@ xinit(int cols, int rows) | |||||||
| 	xloadcols(); | 	xloadcols(); | ||||||
|  |  | ||||||
| 	/* adjust fixed window geometry */ | 	/* adjust fixed window geometry */ | ||||||
| 	win.w = 2 * borderpx + cols * win.cw; | 	win.w = 2 * win.hborderpx + 2 * borderpx + cols * win.cw; | ||||||
| 	win.h = 2 * borderpx + rows * win.ch; | 	win.h = 2 * win.vborderpx + 2 * borderpx + rows * win.ch; | ||||||
| 	if (xw.gm & XNegative) | 	if (xw.gm & XNegative) | ||||||
| 		xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; | 		xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; | ||||||
| 	if (xw.gm & YNegative) | 	if (xw.gm & YNegative) | ||||||
| @ -1337,7 +1341,7 @@ xinit(int cols, int rows) | |||||||
| int | int | ||||||
| xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y) | xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y) | ||||||
| { | { | ||||||
| 	float winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, xp, yp; | 	float winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp; | ||||||
| 	ushort mode, prevmode = USHRT_MAX; | 	ushort mode, prevmode = USHRT_MAX; | ||||||
| 	Font *font = &dc.font; | 	Font *font = &dc.font; | ||||||
| 	int frcflags = FRC_NORMAL; | 	int frcflags = FRC_NORMAL; | ||||||
| @ -1470,7 +1474,7 @@ void | |||||||
| xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y) | xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y) | ||||||
| { | { | ||||||
| 	int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1); | 	int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1); | ||||||
| 	int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, | 	int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, | ||||||
| 	    width = charlen * win.cw; | 	    width = charlen * win.cw; | ||||||
| 	Color *fg, *bg, *temp, revfg, revbg, truefg, truebg; | 	Color *fg, *bg, *temp, revfg, revbg, truefg, truebg; | ||||||
| 	XRenderColor colfg, colbg; | 	XRenderColor colfg, colbg; | ||||||
| @ -1560,17 +1564,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i | |||||||
|  |  | ||||||
| 	/* Intelligent cleaning up of the borders. */ | 	/* Intelligent cleaning up of the borders. */ | ||||||
| 	if (x == 0) { | 	if (x == 0) { | ||||||
| 		xclear(0, (y == 0)? 0 : winy, borderpx, | 		xclear(0, (y == 0)? 0 : winy, win.hborderpx, | ||||||
| 			winy + win.ch + | 			winy + win.ch + | ||||||
| 			((winy + win.ch >= borderpx + win.th)? win.h : 0)); | 			((winy + win.ch >= win.vborderpx + win.th)? win.h : 0)); | ||||||
| 	} | 	} | ||||||
| 	if (winx + width >= borderpx + win.tw) { | 	if (winx + width >= win.hborderpx + win.tw) { | ||||||
| 		xclear(winx + width, (y == 0)? 0 : winy, win.w, | 		xclear(winx + width, (y == 0)? 0 : winy, win.w, | ||||||
| 			((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch))); | 			((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch))); | ||||||
| 	} | 	} | ||||||
| 	if (y == 0) | 	if (y == 0) | ||||||
| 		xclear(winx, 0, winx + width, borderpx); | 		xclear(winx, 0, winx + width, win.vborderpx); | ||||||
| 	if (winy + win.ch >= borderpx + win.th) | 	if (winy + win.ch >= win.vborderpx + win.th) | ||||||
| 		xclear(winx, winy + win.ch, winx + width, win.h); | 		xclear(winx, winy + win.ch, winx + width, win.h); | ||||||
|  |  | ||||||
| 	/* Clean up the region we want to draw to. */ | 	/* Clean up the region we want to draw to. */ | ||||||
| @ -1664,35 +1668,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) | |||||||
| 		case 3: /* Blinking Underline */ | 		case 3: /* Blinking Underline */ | ||||||
| 		case 4: /* Steady Underline */ | 		case 4: /* Steady Underline */ | ||||||
| 			XftDrawRect(xw.draw, &drawcol, | 			XftDrawRect(xw.draw, &drawcol, | ||||||
| 					borderpx + cx * win.cw, | 					win.hborderpx + cx * win.cw, | ||||||
| 					borderpx + (cy + 1) * win.ch - \ | 					win.vborderpx + (cy + 1) * win.ch - \ | ||||||
| 						cursorthickness, | 						cursorthickness, | ||||||
| 					win.cw, cursorthickness); | 					win.cw, cursorthickness); | ||||||
| 			break; | 			break; | ||||||
| 		case 5: /* Blinking bar */ | 		case 5: /* Blinking bar */ | ||||||
| 		case 6: /* Steady bar */ | 		case 6: /* Steady bar */ | ||||||
| 			XftDrawRect(xw.draw, &drawcol, | 			XftDrawRect(xw.draw, &drawcol, | ||||||
| 					borderpx + cx * win.cw, | 					win.hborderpx + cx * win.cw, | ||||||
| 					borderpx + cy * win.ch, | 					win.vborderpx + cy * win.ch, | ||||||
| 					cursorthickness, win.ch); | 					cursorthickness, win.ch); | ||||||
| 			break; | 			break; | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		XftDrawRect(xw.draw, &drawcol, | 		XftDrawRect(xw.draw, &drawcol, | ||||||
| 				borderpx + cx * win.cw, | 				win.hborderpx + cx * win.cw, | ||||||
| 				borderpx + cy * win.ch, | 				win.vborderpx + cy * win.ch, | ||||||
| 				win.cw - 1, 1); | 				win.cw - 1, 1); | ||||||
| 		XftDrawRect(xw.draw, &drawcol, | 		XftDrawRect(xw.draw, &drawcol, | ||||||
| 				borderpx + cx * win.cw, | 				win.hborderpx + cx * win.cw, | ||||||
| 				borderpx + cy * win.ch, | 				win.vborderpx + cy * win.ch, | ||||||
| 				1, win.ch - 1); | 				1, win.ch - 1); | ||||||
| 		XftDrawRect(xw.draw, &drawcol, | 		XftDrawRect(xw.draw, &drawcol, | ||||||
| 				borderpx + (cx + 1) * win.cw - 1, | 				win.hborderpx + (cx + 1) * win.cw - 1, | ||||||
| 				borderpx + cy * win.ch, | 				win.vborderpx + cy * win.ch, | ||||||
| 				1, win.ch - 1); | 				1, win.ch - 1); | ||||||
| 		XftDrawRect(xw.draw, &drawcol, | 		XftDrawRect(xw.draw, &drawcol, | ||||||
| 				borderpx + cx * win.cw, | 				win.hborderpx + cx * win.cw, | ||||||
| 				borderpx + (cy + 1) * win.ch - 1, | 				win.vborderpx + (cy + 1) * win.ch - 1, | ||||||
| 				win.cw, 1); | 				win.cw, 1); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Linux User
					Linux User