mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	In terminfo, sometimes cvvis implies cnorm and sometimes it doesn't, so
don't assume it does. Fixes missing cursor with emacs-in-tmux-in-tmux.
This commit is contained in:
		
							
								
								
									
										19
									
								
								tty.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								tty.c
									
									
									
									
									
								
							@@ -507,14 +507,17 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s)
 | 
			
		||||
		mode &= ~MODE_CURSOR;
 | 
			
		||||
 | 
			
		||||
	changed = mode ^ tty->mode;
 | 
			
		||||
	if (changed & (MODE_CURSOR|MODE_BLINKING)) {
 | 
			
		||||
		if (mode & MODE_CURSOR) {
 | 
			
		||||
			if (mode & MODE_BLINKING &&
 | 
			
		||||
			    tty_term_has(tty->term, TTYC_CVVIS))
 | 
			
		||||
				tty_putcode(tty, TTYC_CVVIS);
 | 
			
		||||
			else
 | 
			
		||||
				tty_putcode(tty, TTYC_CNORM);
 | 
			
		||||
		} else
 | 
			
		||||
	if (changed & MODE_BLINKING) {
 | 
			
		||||
		if (tty_term_has(tty->term, TTYC_CVVIS))
 | 
			
		||||
			tty_putcode(tty, TTYC_CVVIS);
 | 
			
		||||
		else
 | 
			
		||||
			tty_putcode(tty, TTYC_CNORM);
 | 
			
		||||
		changed |= MODE_CURSOR;
 | 
			
		||||
	}
 | 
			
		||||
	if (changed & MODE_CURSOR) {
 | 
			
		||||
		if (mode & MODE_CURSOR)
 | 
			
		||||
			tty_putcode(tty, TTYC_CNORM);
 | 
			
		||||
		else
 | 
			
		||||
			tty_putcode(tty, TTYC_CIVIS);
 | 
			
		||||
	}
 | 
			
		||||
	if (s != NULL && tty->cstyle != s->cstyle) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user