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
					
				| @ -52,18 +52,16 @@ static const char *colorname[] = { | |||||||
| 
 | 
 | ||||||
| 	/* more colors can be added after 255 to use with DefaultXX */ | 	/* more colors can be added after 255 to use with DefaultXX */ | ||||||
| 	"#cccccc", | 	"#cccccc", | ||||||
| 	"#333333", |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Default colors (colorname index) |  * Default colors (colorname index) | ||||||
|  * foreground, background, cursor, unfocused cursor |  * foreground, background, cursor | ||||||
|  */ |  */ | ||||||
| static unsigned int defaultfg = 7; | static unsigned int defaultfg = 7; | ||||||
| static unsigned int defaultbg = 0; | static unsigned int defaultbg = 0; | ||||||
| static unsigned int defaultcs = 256; | static unsigned int defaultcs = 256; | ||||||
| static unsigned int defaultucs = 257; |  | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Colors used, when the specific fg == defaultfg. So in reverse mode this |  * 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 */ | 	/* draw the new one */ | ||||||
| 	if(!(IS_SET(MODE_HIDE))) { | 	if(!(IS_SET(MODE_HIDE))) { | ||||||
| 		if(!(xw.state & WIN_FOCUSED)) | 		if(xw.state & WIN_FOCUSED) { | ||||||
| 			g.bg = defaultucs; | 			if(IS_SET(MODE_REVERSE)) { | ||||||
|  | 				g.mode |= ATTR_REVERSE; | ||||||
|  | 				g.fg = defaultcs; | ||||||
|  | 				g.bg = defaultfg; | ||||||
|  | 			} | ||||||
| 
 | 
 | ||||||
| 		if(IS_SET(MODE_REVERSE)) | 			sl = utf8size(g.c); | ||||||
| 			g.mode |= ATTR_REVERSE, g.fg = defaultcs, g.bg = defaultfg; | 			xdraws(g.c, g, term.c.x, term.c.y, 1, sl); | ||||||
| 
 | 		} else { | ||||||
| 		sl = utf8size(g.c); | 			XftDrawRect(xw.draw, &dc.col[defaultcs], | ||||||
| 		xdraws(g.c, g, term.c.x, term.c.y, 1, sl); | 					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; | 		oldx = term.c.x, oldy = term.c.y; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user