fix(input) Write user input only in Normal mode
closes 184 Added the Action::NoOp from https://github.com/zellij-org/zellij/issues/184
This commit is contained in:
parent
dbbb0792c9
commit
f3f23972eb
3 changed files with 12 additions and 8 deletions
|
|
@ -39,6 +39,8 @@ pub enum Action {
|
|||
CloseFocus,
|
||||
/// Create a new tab.
|
||||
NewTab,
|
||||
/// Do nothing.
|
||||
NoOp,
|
||||
/// Go to the next tab.
|
||||
GoToNextTab,
|
||||
/// Go to the previous tab.
|
||||
|
|
|
|||
|
|
@ -227,6 +227,7 @@ impl InputHandler {
|
|||
.unwrap();
|
||||
self.command_is_executing.wait_until_pane_is_closed();
|
||||
}
|
||||
Action::NoOp => {}
|
||||
}
|
||||
|
||||
should_break
|
||||
|
|
|
|||
|
|
@ -165,15 +165,16 @@ pub fn key_to_actions(
|
|||
mode: &InputMode,
|
||||
keybinds: &Keybinds,
|
||||
) -> Vec<Action> {
|
||||
if let Some(mode_keybinds) = keybinds.get(mode) {
|
||||
mode_keybinds
|
||||
let mode_keybind_or_action = |action: Action| {
|
||||
keybinds
|
||||
.get(mode)
|
||||
.unwrap_or_else(|| unreachable!("Unrecognized mode: {:?}", mode))
|
||||
.get(key)
|
||||
.cloned()
|
||||
// FIXME in command mode, unbound keystrokes should probably do nothing instead of
|
||||
// writing to the terminal. Will be easier to implement after a big refactor of the
|
||||
// input system (@categorille)
|
||||
.unwrap_or_else(|| vec![Action::Write(input)])
|
||||
} else {
|
||||
unreachable!("Unrecognized mode: {:?}", mode);
|
||||
.unwrap_or_else(|| vec![action])
|
||||
};
|
||||
match *mode {
|
||||
InputMode::Normal => mode_keybind_or_action(Action::Write(input)),
|
||||
_ => mode_keybind_or_action(Action::NoOp),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue