aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/input.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/input.rs')
-rw-r--r--alacritty/src/input.rs23
1 files changed, 7 insertions, 16 deletions
diff --git a/alacritty/src/input.rs b/alacritty/src/input.rs
index c5407090..4ed634fe 100644
--- a/alacritty/src/input.rs
+++ b/alacritty/src/input.rs
@@ -377,7 +377,7 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
self.ctx.mouse_mut().x = x;
self.ctx.mouse_mut().y = y;
- let inside_grid = size_info.contains_point(x, y);
+ let inside_text_area = size_info.contains_point(x, y);
let point = size_info.pixels_to_coords(x, y);
let cell_side = self.get_mouse_side();
@@ -387,12 +387,12 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
// If the mouse hasn't changed cells, do nothing.
if !cell_changed
&& self.ctx.mouse().cell_side == cell_side
- && self.ctx.mouse().inside_grid == inside_grid
+ && self.ctx.mouse().inside_text_area == inside_text_area
{
return;
}
- self.ctx.mouse_mut().inside_grid = inside_grid;
+ self.ctx.mouse_mut().inside_text_area = inside_text_area;
self.ctx.mouse_mut().cell_side = cell_side;
self.ctx.mouse_mut().line = point.line;
self.ctx.mouse_mut().column = point.col;
@@ -405,23 +405,14 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
self.update_url_state(&mouse_state);
self.ctx.window_mut().set_mouse_cursor(mouse_state.into());
- let last_term_line = self.ctx.terminal().grid().screen_lines() - 1;
if (lmb_pressed || rmb_pressed)
&& (self.ctx.modifiers().shift() || !self.ctx.mouse_mode())
&& !search_active
{
- // Treat motion over message bar like motion over the last line.
- let line = min(point.line, last_term_line);
-
- // Move vi mode cursor to mouse cursor position.
- if self.ctx.terminal().mode().contains(TermMode::VI) {
- self.ctx.terminal_mut().vi_mode_cursor.point = point;
- }
-
- self.ctx.update_selection(Point { line, col: point.col }, cell_side);
- } else if inside_grid
+ self.ctx.update_selection(point, cell_side);
+ } else if inside_text_area
&& cell_changed
- && point.line <= last_term_line
+ && point.line < self.ctx.terminal().screen_lines()
&& self.ctx.terminal().mode().intersects(TermMode::MOUSE_MOTION | TermMode::MOUSE_DRAG)
{
if lmb_pressed {
@@ -997,7 +988,7 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
// Since search is above the message bar, the button is offset by search's height.
let search_height = if self.ctx.search_active() { 1 } else { 0 };
- mouse.inside_grid
+ mouse.inside_text_area
&& mouse.column + message_bar::CLOSE_BUTTON_TEXT.len() >= self.ctx.size_info().cols()
&& mouse.line == self.ctx.terminal().grid().screen_lines() + search_height
}