Reverse the cursor on selection.
This commit is contained in:
		
							
								
								
									
										3
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								st.c
									
									
									
									
									
								
							@ -3828,6 +3828,7 @@ xdrawcursor(void)
 | 
				
			|||||||
	static int oldx = 0, oldy = 0;
 | 
						static int oldx = 0, oldy = 0;
 | 
				
			||||||
	int curx;
 | 
						int curx;
 | 
				
			||||||
	Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs};
 | 
						Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs};
 | 
				
			||||||
 | 
						int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	LIMIT(oldx, 0, term.col-1);
 | 
						LIMIT(oldx, 0, term.col-1);
 | 
				
			||||||
	LIMIT(oldy, 0, term.row-1);
 | 
						LIMIT(oldy, 0, term.row-1);
 | 
				
			||||||
@ -3841,6 +3842,8 @@ xdrawcursor(void)
 | 
				
			|||||||
		curx--;
 | 
							curx--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g.u = term.line[term.c.y][term.c.x].u;
 | 
						g.u = term.line[term.c.y][term.c.x].u;
 | 
				
			||||||
 | 
						if (ena_sel && selected(term.c.x, term.c.y))
 | 
				
			||||||
 | 
							g.mode ^= ATTR_REVERSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* remove the old cursor */
 | 
						/* remove the old cursor */
 | 
				
			||||||
	xdrawglyph(term.line[oldy][oldx], oldx, oldy);
 | 
						xdrawglyph(term.line[oldy][oldx], oldx, oldy);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user