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
 | 
					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;
 | 
						struct window_copy_mode_data	*data = wme->data;
 | 
				
			||||||
	u_int				 xx, yy;
 | 
						u_int				 xx, yy;
 | 
				
			||||||
	int				 begin = 0;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	yy = screen_hsize(data->backing) + data->cy - data->oy;
 | 
						yy = screen_hsize(data->backing) + data->cy - data->oy;
 | 
				
			||||||
	switch (data->selflag) {
 | 
						switch (data->selflag) {
 | 
				
			||||||
	case SEL_WORD:
 | 
						case SEL_WORD:
 | 
				
			||||||
 | 
							begin = 0;
 | 
				
			||||||
		xx = data->cx;
 | 
							xx = data->cx;
 | 
				
			||||||
		if (data->ws == NULL)
 | 
							if (data->ws == NULL)
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
@@ -2911,6 +2911,7 @@ window_copy_synchronize_cursor_end(struct window_mode_entry *wme)
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case SEL_LINE:
 | 
						case SEL_LINE:
 | 
				
			||||||
 | 
							begin = 0;
 | 
				
			||||||
		if (data->dy > yy) {
 | 
							if (data->dy > yy) {
 | 
				
			||||||
			/* Right to left selection. */
 | 
								/* Right to left selection. */
 | 
				
			||||||
			xx = 0;
 | 
								xx = 0;
 | 
				
			||||||
@@ -2948,11 +2949,10 @@ window_copy_synchronize_cursor(struct window_mode_entry *wme)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	switch (data->cursordrag) {
 | 
						switch (data->cursordrag) {
 | 
				
			||||||
	case CURSORDRAG_ENDSEL:
 | 
						case CURSORDRAG_ENDSEL:
 | 
				
			||||||
		window_copy_synchronize_cursor_end(wme);
 | 
							window_copy_synchronize_cursor_end(wme, 0);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case CURSORDRAG_SEL:
 | 
						case CURSORDRAG_SEL:
 | 
				
			||||||
		data->selx = data->cx;
 | 
							window_copy_synchronize_cursor_end(wme, 1);
 | 
				
			||||||
		data->sely = screen_hsize(data->backing) + data->cy - data->oy;
 | 
					 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case CURSORDRAG_NONE:
 | 
						case CURSORDRAG_NONE:
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user