From fd8af0df3395a13f7fe670e293ee9584669aa7bd Mon Sep 17 00:00:00 2001 From: Nathan Lilienthal Date: Thu, 1 Nov 2018 21:34:02 -0400 Subject: Fix selection while scrolling Properly update an active selection while scrolling the main scrollback buffer. This does not affect the alternate screen buffer, since no scrollback buffer is available. --- src/event.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/event.rs') diff --git a/src/event.rs b/src/event.rs index c6fd9168..b3def0eb 100644 --- a/src/event.rs +++ b/src/event.rs @@ -58,6 +58,17 @@ impl<'a, N: Notify + 'a> input::ActionContext for ActionContext<'a, N> { fn scroll(&mut self, scroll: Scroll) { self.terminal.scroll_display(scroll); + + if let ElementState::Pressed = self.mouse().left_button_state { + let (x, y) = (self.mouse().x, self.mouse().y); + let size_info = self.size_info(); + let point = size_info.pixels_to_coords(x, y); + let cell_side = self.mouse().cell_side; + self.update_selection(Point { + line: point.line, + col: point.col + }, cell_side); + } } fn clear_history(&mut self) { -- cgit