Compare commits
	
		
			1 Commits
		
	
	
		
			feat/bold-
			...
			feat/alpha
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b38ee61d6c | 
							
								
								
									
										60
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								x.c
									
									
									
									
									
								
							@@ -81,7 +81,6 @@ 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 +333,7 @@ ttysend(const Arg *arg)
 | 
				
			|||||||
int
 | 
					int
 | 
				
			||||||
evcol(XEvent *e)
 | 
					evcol(XEvent *e)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int x = e->xbutton.x - win.hborderpx;
 | 
						int x = e->xbutton.x - borderpx;
 | 
				
			||||||
	LIMIT(x, 0, win.tw - 1);
 | 
						LIMIT(x, 0, win.tw - 1);
 | 
				
			||||||
	return x / win.cw;
 | 
						return x / win.cw;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -342,7 +341,7 @@ evcol(XEvent *e)
 | 
				
			|||||||
int
 | 
					int
 | 
				
			||||||
evrow(XEvent *e)
 | 
					evrow(XEvent *e)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int y = e->xbutton.y - win.vborderpx;
 | 
						int y = e->xbutton.y - borderpx;
 | 
				
			||||||
	LIMIT(y, 0, win.th - 1);
 | 
						LIMIT(y, 0, win.th - 1);
 | 
				
			||||||
	return y / win.ch;
 | 
						return y / win.ch;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -742,9 +741,6 @@ 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);
 | 
				
			||||||
@@ -882,8 +878,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 = 1;
 | 
						sizeh->height_inc = win.ch;
 | 
				
			||||||
	sizeh->width_inc = 1;
 | 
						sizeh->width_inc = win.cw;
 | 
				
			||||||
	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;
 | 
				
			||||||
@@ -1177,8 +1173,8 @@ xinit(int cols, int rows)
 | 
				
			|||||||
	xloadcols();
 | 
						xloadcols();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* adjust fixed window geometry */
 | 
						/* adjust fixed window geometry */
 | 
				
			||||||
	win.w = 2 * win.hborderpx + 2 * borderpx + cols * win.cw;
 | 
						win.w = 2 * borderpx + cols * win.cw;
 | 
				
			||||||
	win.h = 2 * win.vborderpx + 2 * borderpx + rows * win.ch;
 | 
						win.h = 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)
 | 
				
			||||||
@@ -1263,7 +1259,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 = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp;
 | 
						float winx = borderpx + x * win.cw, winy = borderpx + 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;
 | 
				
			||||||
@@ -1396,7 +1392,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 = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch,
 | 
						int winx = borderpx + x * win.cw, winy = borderpx + 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;
 | 
				
			||||||
@@ -1433,6 +1429,10 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i
 | 
				
			|||||||
		bg = &dc.col[base.bg];
 | 
							bg = &dc.col[base.bg];
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Change basic system colors [0-7] to bright system colors [8-15] */
 | 
				
			||||||
 | 
						if ((base.mode & ATTR_BOLD_FAINT) == ATTR_BOLD && BETWEEN(base.fg, 0, 7))
 | 
				
			||||||
 | 
							fg = &dc.col[base.fg + 8];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (IS_SET(MODE_REVERSE)) {
 | 
						if (IS_SET(MODE_REVERSE)) {
 | 
				
			||||||
		if (fg == &dc.col[defaultfg]) {
 | 
							if (fg == &dc.col[defaultfg]) {
 | 
				
			||||||
			fg = &dc.col[defaultbg];
 | 
								fg = &dc.col[defaultbg];
 | 
				
			||||||
@@ -1482,17 +1482,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, win.hborderpx,
 | 
							xclear(0, (y == 0)? 0 : winy, borderpx,
 | 
				
			||||||
			winy + win.ch +
 | 
								winy + win.ch +
 | 
				
			||||||
			((winy + win.ch >= win.vborderpx + win.th)? win.h : 0));
 | 
								((winy + win.ch >= borderpx + win.th)? win.h : 0));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (winx + width >= win.hborderpx + win.tw) {
 | 
						if (winx + width >= borderpx + win.tw) {
 | 
				
			||||||
		xclear(winx + width, (y == 0)? 0 : winy, win.w,
 | 
							xclear(winx + width, (y == 0)? 0 : winy, win.w,
 | 
				
			||||||
			((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch)));
 | 
								((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch)));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (y == 0)
 | 
						if (y == 0)
 | 
				
			||||||
		xclear(winx, 0, winx + width, win.vborderpx);
 | 
							xclear(winx, 0, winx + width, borderpx);
 | 
				
			||||||
	if (winy + win.ch >= win.vborderpx + win.th)
 | 
						if (winy + win.ch >= borderpx + 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. */
 | 
				
			||||||
@@ -1586,35 +1586,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,
 | 
				
			||||||
					win.hborderpx + cx * win.cw,
 | 
										borderpx + cx * win.cw,
 | 
				
			||||||
					win.vborderpx + (cy + 1) * win.ch - \
 | 
										borderpx + (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,
 | 
				
			||||||
					win.hborderpx + cx * win.cw,
 | 
										borderpx + cx * win.cw,
 | 
				
			||||||
					win.vborderpx + cy * win.ch,
 | 
										borderpx + cy * win.ch,
 | 
				
			||||||
					cursorthickness, win.ch);
 | 
										cursorthickness, win.ch);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		XftDrawRect(xw.draw, &drawcol,
 | 
							XftDrawRect(xw.draw, &drawcol,
 | 
				
			||||||
				win.hborderpx + cx * win.cw,
 | 
									borderpx + cx * win.cw,
 | 
				
			||||||
				win.vborderpx + cy * win.ch,
 | 
									borderpx + cy * win.ch,
 | 
				
			||||||
				win.cw - 1, 1);
 | 
									win.cw - 1, 1);
 | 
				
			||||||
		XftDrawRect(xw.draw, &drawcol,
 | 
							XftDrawRect(xw.draw, &drawcol,
 | 
				
			||||||
				win.hborderpx + cx * win.cw,
 | 
									borderpx + cx * win.cw,
 | 
				
			||||||
				win.vborderpx + cy * win.ch,
 | 
									borderpx + cy * win.ch,
 | 
				
			||||||
				1, win.ch - 1);
 | 
									1, win.ch - 1);
 | 
				
			||||||
		XftDrawRect(xw.draw, &drawcol,
 | 
							XftDrawRect(xw.draw, &drawcol,
 | 
				
			||||||
				win.hborderpx + (cx + 1) * win.cw - 1,
 | 
									borderpx + (cx + 1) * win.cw - 1,
 | 
				
			||||||
				win.vborderpx + cy * win.ch,
 | 
									borderpx + cy * win.ch,
 | 
				
			||||||
				1, win.ch - 1);
 | 
									1, win.ch - 1);
 | 
				
			||||||
		XftDrawRect(xw.draw, &drawcol,
 | 
							XftDrawRect(xw.draw, &drawcol,
 | 
				
			||||||
				win.hborderpx + cx * win.cw,
 | 
									borderpx + cx * win.cw,
 | 
				
			||||||
				win.vborderpx + (cy + 1) * win.ch - 1,
 | 
									borderpx + (cy + 1) * win.ch - 1,
 | 
				
			||||||
				win.cw, 1);
 | 
									win.cw, 1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user