aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alacritty/src/input/mod.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/alacritty/src/input/mod.rs b/alacritty/src/input/mod.rs
index 3f85512f..113f1510 100644
--- a/alacritty/src/input/mod.rs
+++ b/alacritty/src/input/mod.rs
@@ -542,7 +542,7 @@ impl<T: EventListener, A: ActionContext<T>> Processor<T, A> {
}
// Report mouse events.
- if self.ctx.terminal().mode().contains(TermMode::SGR_MOUSE) {
+ if button > 2 || self.ctx.terminal().mode().contains(TermMode::SGR_MOUSE) {
self.sgr_mouse_report(point, button + mods, state);
} else if let ElementState::Released = state {
self.normal_mouse_report(point, 3 + mods);
@@ -604,11 +604,12 @@ impl<T: EventListener, A: ActionContext<T>> Processor<T, A> {
MouseButton::Left => 0,
MouseButton::Middle => 1,
MouseButton::Right => 2,
- // Can't properly report more than three buttons..
- MouseButton::Back | MouseButton::Forward | MouseButton::Other(_) => return,
+ MouseButton::Back => 128,
+ MouseButton::Forward => 129,
+ MouseButton::Other(c) => c + 69,
};
- self.mouse_report(code, ElementState::Pressed);
+ self.mouse_report(code.try_into().unwrap(), ElementState::Pressed);
} else {
// Calculate time since the last click to handle double/triple clicks.
let now = Instant::now();