keep some glyph modes for the cursor
st currently does not keep any mode for the cursor that was active in the underlying glyph (e.g. italic text), the mode is always ATTR_NULL [1]. At [2] you can find a screenshot that shows the implications. Other terminals (at least vte-based, such as XFCE-terminal) keep some modes for the cursor. I find the current behaviour very disruptive, so here is a patch that keeps a few (arbitrarily chosen) modes for the cursor. [1] http://git.suckless.org/st/tree/st.c#n3963 [2] http://i.imgur.com/R2yCEaC.png
This commit is contained in:
		
				
					committed by
					
						 Roberto E. Vargas Caballero
						Roberto E. Vargas Caballero
					
				
			
			
				
	
			
			
			
						parent
						
							e7ed326d2e
						
					
				
				
					commit
					f2bfd513b1
				
			
							
								
								
									
										3
									
								
								x.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								x.c
									
									
									
									
									
								
							| @@ -1266,6 +1266,7 @@ xdrawcursor(void) | |||||||
| 	Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og; | 	Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og; | ||||||
| 	int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN); | 	int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN); | ||||||
| 	Color drawcol; | 	Color drawcol; | ||||||
|  | 	unsigned attr; | ||||||
|  |  | ||||||
| 	LIMIT(oldx, 0, term.col-1); | 	LIMIT(oldx, 0, term.col-1); | ||||||
| 	LIMIT(oldy, 0, term.row-1); | 	LIMIT(oldy, 0, term.row-1); | ||||||
| @@ -1285,6 +1286,8 @@ xdrawcursor(void) | |||||||
| 	xdrawglyph(og, oldx, oldy); | 	xdrawglyph(og, oldx, oldy); | ||||||
|  |  | ||||||
| 	g.u = term.line[term.c.y][term.c.x].u; | 	g.u = term.line[term.c.y][term.c.x].u; | ||||||
|  | 	attr = ATTR_BOLD | ATTR_ITALIC | ATTR_UNDERLINE | ATTR_STRUCK; | ||||||
|  | 	g.mode |= term.line[term.c.y][term.c.x].mode & attr; | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * Select the right color for the right mode. | 	 * Select the right color for the right mode. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user