mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Sync OpenBSD patchset 263:
Reset attributes as well as scroll region before poll(2) and add a big comment explaining why.
This commit is contained in:
		
							
								
								
									
										14
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								server.c
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
/* $Id: server.c,v 1.169 2009-08-14 21:24:46 tcunha Exp $ */
 | 
			
		||||
/* $Id: server.c,v 1.170 2009-08-16 19:33:49 tcunha Exp $ */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
 | 
			
		||||
@@ -884,7 +884,16 @@ server_handle_client(struct client *c)
 | 
			
		||||
	wp = c->session->curw->window->active;	/* could die - do each loop */
 | 
			
		||||
	s = wp->screen;
 | 
			
		||||
 | 
			
		||||
	/* Ensure cursor position and mode settings. */
 | 
			
		||||
	/*
 | 
			
		||||
	 * Update cursor position and mode settings. The scroll region and
 | 
			
		||||
	 * attributes are cleared across poll(2) as this is the most likely
 | 
			
		||||
	 * time a user may interrupt tmux, for example with ~^Z in ssh(1). This
 | 
			
		||||
	 * is a compromise between excessive resets and likelihood of an
 | 
			
		||||
	 * interrupt.
 | 
			
		||||
	 *
 | 
			
		||||
	 * tty_region/tty_reset/tty_update_mode already take care of not
 | 
			
		||||
	 * resetting things that are already in their default state.
 | 
			
		||||
	 */
 | 
			
		||||
	status = options_get_number(&c->session->options, "status");
 | 
			
		||||
	tty_region(&c->tty, 0, c->tty.sy - 1, 0);
 | 
			
		||||
	if (!window_pane_visible(wp) || wp->yoff + s->cy >= c->tty.sy - status)
 | 
			
		||||
@@ -896,6 +905,7 @@ server_handle_client(struct client *c)
 | 
			
		||||
	if (server_locked)
 | 
			
		||||
		mode &= ~TTY_NOCURSOR;
 | 
			
		||||
	tty_update_mode(&c->tty, mode);
 | 
			
		||||
	tty_reset(&c->tty);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Lost a client. */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user