diff options
author | Nathan Lilienthal <nathan@nixpulvis.com> | 2018-11-01 21:34:02 -0400 |
---|---|---|
committer | Christian Duerr <chrisduerr@users.noreply.github.com> | 2018-11-02 01:34:02 +0000 |
commit | fd8af0df3395a13f7fe670e293ee9584669aa7bd (patch) | |
tree | ca62e4fc475615ee87d8aae1653cdea5fc477863 /src | |
parent | a3f729f5899a1d56222641f362805f251de3f84d (diff) | |
download | alacritty-fd8af0df3395a13f7fe670e293ee9584669aa7bd.tar.gz alacritty-fd8af0df3395a13f7fe670e293ee9584669aa7bd.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/event.rs | 11 |
1 files changed, 11 insertions, 0 deletions
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) { |