diff options
Diffstat (limited to 'alacritty/src/input.rs')
-rw-r--r-- | alacritty/src/input.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/alacritty/src/input.rs b/alacritty/src/input.rs index be6a030e..a3148820 100644 --- a/alacritty/src/input.rs +++ b/alacritty/src/input.rs @@ -551,11 +551,9 @@ impl<'a, T: EventListener, A: ActionContext<T> + 'a> Processor<'a, T, A> { fn scroll_terminal(&mut self, modifiers: ModifiersState, new_scroll_px: i32) { let mouse_modes = TermMode::MOUSE_REPORT_CLICK | TermMode::MOUSE_DRAG | TermMode::MOUSE_MOTION; + let alt_scroll_modes = TermMode::ALT_SCREEN | TermMode::ALTERNATE_SCROLL; let height = self.ctx.size_info().cell_height as i32; - // Make sure the new and deprecated setting are both allowed - let faux_multiplier = self.config.scrolling.faux_multiplier() as usize; - if self.ctx.terminal().mode().intersects(mouse_modes) { self.ctx.mouse_mut().scroll_px += new_scroll_px; @@ -565,11 +563,14 @@ impl<'a, T: EventListener, A: ActionContext<T> + 'a> Processor<'a, T, A> { for _ in 0..lines { self.mouse_report(code, ElementState::Pressed, modifiers); } - } else if self.ctx.terminal().mode().contains(TermMode::ALT_SCREEN) - && faux_multiplier > 0 - && !modifiers.shift - { - self.ctx.mouse_mut().scroll_px += new_scroll_px * faux_multiplier as i32; + } else if self.ctx.terminal().mode().contains(alt_scroll_modes) && !modifiers.shift { + let multiplier = i32::from( + self.config + .scrolling + .faux_multiplier() + .unwrap_or_else(|| self.config.scrolling.multiplier()), + ); + self.ctx.mouse_mut().scroll_px += new_scroll_px * multiplier; let cmd = if new_scroll_px > 0 { b'A' } else { b'B' }; let lines = (self.ctx.mouse().scroll_px / height).abs(); |