summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2020-12-13 02:59:30 +0000
committerGitHub <noreply@github.com>2020-12-13 05:59:30 +0300
commitf701b22c2d174faca83cfc0b786ba0bfd4b1724f (patch)
treefa1428c4b3c16988844616c0f91bd6306457e844
parent6b208a6958a32594cf1248f5336f8a8f79d17fe3 (diff)
downloadalacritty-f701b22c2d174faca83cfc0b786ba0bfd4b1724f.tar.gz
alacritty-f701b22c2d174faca83cfc0b786ba0bfd4b1724f.zip
Fix cursor reports with mouse outside of window
Previously Alacritty would not report cursor escapes to the application when a mouse button was held down and the mouse was moved. This prevents applications like tmux from updating their selection. Similarly to how windowing libraries keep reporting mouse events when the left mouse button is held down over the window, the escape sequences are now clamped to within the grid and reported to applications. Fixes #4566.
-rw-r--r--CHANGELOG.md1
-rw-r--r--alacritty/src/input.rs3
2 files changed, 2 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 873dc279..fd096e62 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -33,6 +33,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Compilation when targetting aarch64-apple-darwin
- Window not being completely opaque on Windows
- Window being always on top during alt-tab on Windows
+- Cursor position not reported to apps when mouse is moved with button held outside of window
### Removed
diff --git a/alacritty/src/input.rs b/alacritty/src/input.rs
index ce89625b..d6296a5d 100644
--- a/alacritty/src/input.rs
+++ b/alacritty/src/input.rs
@@ -403,8 +403,7 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
if (lmb_pressed || rmb_pressed) && (self.ctx.modifiers().shift() || !self.ctx.mouse_mode())
{
self.ctx.update_selection(point, cell_side);
- } else if inside_text_area
- && cell_changed
+ } else if cell_changed
&& point.line < self.ctx.terminal().screen_lines()
&& self.ctx.terminal().mode().intersects(TermMode::MOUSE_MOTION | TermMode::MOUSE_DRAG)
{