Drawing a more visible rectangle as cursor on unfocus.
To have a more visible cursor on unfocused windows this patch makes st draw a rectangle around the terminal cell. Thanks Mark Hills <mark@xwax.org> for the suggestion!
This commit is contained in:
		
							parent
							
								
									5dc48af29e
								
							
						
					
					
						commit
						1e7816c202
					
				
					 2 changed files with 27 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -52,18 +52,16 @@ static const char *colorname[] = {
 | 
			
		|||
 | 
			
		||||
	/* more colors can be added after 255 to use with DefaultXX */
 | 
			
		||||
	"#cccccc",
 | 
			
		||||
	"#333333",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Default colors (colorname index)
 | 
			
		||||
 * foreground, background, cursor, unfocused cursor
 | 
			
		||||
 * foreground, background, cursor
 | 
			
		||||
 */
 | 
			
		||||
static unsigned int defaultfg = 7;
 | 
			
		||||
static unsigned int defaultbg = 0;
 | 
			
		||||
static unsigned int defaultcs = 256;
 | 
			
		||||
static unsigned int defaultucs = 257;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Colors used, when the specific fg == defaultfg. So in reverse mode this
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										33
									
								
								st.c
									
										
									
									
									
								
							
							
						
						
									
										33
									
								
								st.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -2968,14 +2968,33 @@ xdrawcursor(void) {
 | 
			
		|||
 | 
			
		||||
	/* draw the new one */
 | 
			
		||||
	if(!(IS_SET(MODE_HIDE))) {
 | 
			
		||||
		if(!(xw.state & WIN_FOCUSED))
 | 
			
		||||
			g.bg = defaultucs;
 | 
			
		||||
		if(xw.state & WIN_FOCUSED) {
 | 
			
		||||
			if(IS_SET(MODE_REVERSE)) {
 | 
			
		||||
				g.mode |= ATTR_REVERSE;
 | 
			
		||||
				g.fg = defaultcs;
 | 
			
		||||
				g.bg = defaultfg;
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		if(IS_SET(MODE_REVERSE))
 | 
			
		||||
			g.mode |= ATTR_REVERSE, g.fg = defaultcs, g.bg = defaultfg;
 | 
			
		||||
 | 
			
		||||
		sl = utf8size(g.c);
 | 
			
		||||
		xdraws(g.c, g, term.c.x, term.c.y, 1, sl);
 | 
			
		||||
			sl = utf8size(g.c);
 | 
			
		||||
			xdraws(g.c, g, term.c.x, term.c.y, 1, sl);
 | 
			
		||||
		} else {
 | 
			
		||||
			XftDrawRect(xw.draw, &dc.col[defaultcs],
 | 
			
		||||
					borderpx + term.c.x * xw.cw,
 | 
			
		||||
					borderpx + term.c.y * xw.ch,
 | 
			
		||||
					xw.cw - 1, 1);
 | 
			
		||||
			XftDrawRect(xw.draw, &dc.col[defaultcs],
 | 
			
		||||
					borderpx + term.c.x * xw.cw,
 | 
			
		||||
					borderpx + term.c.y * xw.ch,
 | 
			
		||||
					1, xw.ch - 1);
 | 
			
		||||
			XftDrawRect(xw.draw, &dc.col[defaultcs],
 | 
			
		||||
					borderpx + (term.c.x + 1) * xw.cw - 1,
 | 
			
		||||
					borderpx + term.c.y * xw.ch,
 | 
			
		||||
					1, xw.ch - 1);
 | 
			
		||||
			XftDrawRect(xw.draw, &dc.col[defaultcs],
 | 
			
		||||
					borderpx + term.c.x * xw.cw,
 | 
			
		||||
					borderpx + (term.c.y + 1) * xw.ch - 1,
 | 
			
		||||
					xw.cw, 1);
 | 
			
		||||
		}
 | 
			
		||||
		oldx = term.c.x, oldy = term.c.y;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue