aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helix-term/src/keymap.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/helix-term/src/keymap.rs b/helix-term/src/keymap.rs
index f0f980bd..aa60482d 100644
--- a/helix-term/src/keymap.rs
+++ b/helix-term/src/keymap.rs
@@ -287,13 +287,14 @@ impl Keymap {
/// sticky node is in use, it will be cleared.
pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
if let key!(Esc) = key {
- if self.state.is_empty() {
- self.sticky = None;
+ if !self.state.is_empty() {
+ return KeymapResult::new(
+ // Note that Esc is not included here
+ KeymapResultKind::Cancelled(self.state.drain(..).collect()),
+ self.sticky(),
+ );
}
- return KeymapResult::new(
- KeymapResultKind::Cancelled(self.state.drain(..).collect()),
- self.sticky(),
- );
+ self.sticky = None;
}
let first = self.state.get(0).unwrap_or(&key);