diff options
author | Christian Duerr <contact@christianduerr.com> | 2023-04-09 22:29:48 +0200 |
---|---|---|
committer | Kirill Chibisov <contact@kchibisov.com> | 2023-04-15 03:09:27 +0300 |
commit | 586f982a260a1864f61f9aff6a861d3231bf3301 (patch) | |
tree | ce8a6accf9a03db01fc1b92d2250f0e17b9f8b46 /alacritty/src/input.rs | |
parent | 8b0305d3f01bbeaedabca8dee4619bb03d8c0561 (diff) | |
download | r-alacritty-586f982a260a1864f61f9aff6a861d3231bf3301.tar.gz r-alacritty-586f982a260a1864f61f9aff6a861d3231bf3301.tar.bz2 r-alacritty-586f982a260a1864f61f9aff6a861d3231bf3301.zip |
Allow mode-exclusive bindings in any mode
This patch enables binding chains that go beyond mode changes by
allowing bindings to be defined for modes they do not usually have an
effect in.
Diffstat (limited to 'alacritty/src/input.rs')
-rw-r--r-- | alacritty/src/input.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/alacritty/src/input.rs b/alacritty/src/input.rs index 992b01df..935fc046 100644 --- a/alacritty/src/input.rs +++ b/alacritty/src/input.rs @@ -14,6 +14,7 @@ use std::marker::PhantomData; use std::mem; use std::time::{Duration, Instant}; +use log::debug; use winit::dpi::PhysicalPosition; use winit::event::{ ElementState, KeyboardInput, ModifiersState, MouseButton, MouseScrollDelta, @@ -162,6 +163,11 @@ impl<T: EventListener> Execute<T> for Action { ctx.on_typing_start(); ctx.toggle_vi_mode() }, + action @ (Action::ViMotion(_) | Action::Vi(_)) + if !ctx.terminal().mode().contains(TermMode::VI) => + { + debug!("Ignoring {action:?}: Vi mode inactive"); + }, Action::ViMotion(motion) => { ctx.on_typing_start(); ctx.terminal_mut().vi_motion(*motion); @@ -246,6 +252,9 @@ impl<T: EventListener> Execute<T> for Action { ctx.scroll(Scroll::Delta(scroll_lines)); }, + action @ Action::Search(_) if !ctx.search_active() => { + debug!("Ignoring {action:?}: Search mode inactive"); + }, Action::Search(SearchAction::SearchFocusNext) => { ctx.advance_search_origin(ctx.search_direction()); }, |