diff --git a/src/components/changes.rs b/src/components/changes.rs index 86fa8013622..ccdc3f82297 100644 --- a/src/components/changes.rs +++ b/src/components/changes.rs @@ -233,7 +233,12 @@ impl Component for ChangesComponent { if self.focused() { if let Event::Key(e) = ev { - return if e == self.key_config.enter { + let stage_or_reset_key = if self.is_working_dir { + self.key_config.stage_item + } else { + self.key_config.unstage_item + }; + return if e == stage_or_reset_key { try_or_popup!( self, "staging error:", diff --git a/src/keys.rs b/src/keys.rs index 0b6a78a39d7..e8079334f9c 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -88,6 +88,8 @@ pub struct KeyConfig { pub pull: KeyEvent, pub abort_merge: KeyEvent, pub undo_commit: KeyEvent, + pub stage_item: KeyEvent, + pub unstage_item: KeyEvent, } #[rustfmt::skip] @@ -161,6 +163,8 @@ impl Default for KeyConfig { abort_merge: KeyEvent { code: KeyCode::Char('A'), modifiers: KeyModifiers::SHIFT}, open_file_tree: KeyEvent { code: KeyCode::Char('F'), modifiers: KeyModifiers::SHIFT}, file_find: KeyEvent { code: KeyCode::Char('f'), modifiers: KeyModifiers::empty()}, + stage_item: KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::empty()}, + unstage_item: KeyEvent { code: KeyCode::Enter, modifiers: KeyModifiers::empty()}, } } }