mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Adjust selection correctly when scrolling, from Anindya Mukherjee.
This commit is contained in:
		@@ -2877,15 +2877,15 @@ window_copy_redraw_screen(struct window_mode_entry *wme)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
window_copy_synchronize_cursor_end(struct window_mode_entry *wme)
 | 
			
		||||
window_copy_synchronize_cursor_end(struct window_mode_entry *wme, int begin)
 | 
			
		||||
{
 | 
			
		||||
	struct window_copy_mode_data	*data = wme->data;
 | 
			
		||||
	u_int				 xx, yy;
 | 
			
		||||
	int				 begin = 0;
 | 
			
		||||
 | 
			
		||||
	yy = screen_hsize(data->backing) + data->cy - data->oy;
 | 
			
		||||
	switch (data->selflag) {
 | 
			
		||||
	case SEL_WORD:
 | 
			
		||||
		begin = 0;
 | 
			
		||||
		xx = data->cx;
 | 
			
		||||
		if (data->ws == NULL)
 | 
			
		||||
			break;
 | 
			
		||||
@@ -2911,6 +2911,7 @@ window_copy_synchronize_cursor_end(struct window_mode_entry *wme)
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	case SEL_LINE:
 | 
			
		||||
		begin = 0;
 | 
			
		||||
		if (data->dy > yy) {
 | 
			
		||||
			/* Right to left selection. */
 | 
			
		||||
			xx = 0;
 | 
			
		||||
@@ -2948,11 +2949,10 @@ window_copy_synchronize_cursor(struct window_mode_entry *wme)
 | 
			
		||||
 | 
			
		||||
	switch (data->cursordrag) {
 | 
			
		||||
	case CURSORDRAG_ENDSEL:
 | 
			
		||||
		window_copy_synchronize_cursor_end(wme);
 | 
			
		||||
		window_copy_synchronize_cursor_end(wme, 0);
 | 
			
		||||
		break;
 | 
			
		||||
	case CURSORDRAG_SEL:
 | 
			
		||||
		data->selx = data->cx;
 | 
			
		||||
		data->sely = screen_hsize(data->backing) + data->cy - data->oy;
 | 
			
		||||
		window_copy_synchronize_cursor_end(wme, 1);
 | 
			
		||||
		break;
 | 
			
		||||
	case CURSORDRAG_NONE:
 | 
			
		||||
		break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user