@@ -287,13 +287,14 @@ impl Keymap {
287 /// sticky node is in use, it will be cleared.
287 /// sticky node is in use, it will be cleared.
288 pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
288 pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
289 if let key!(Esc) = key {
289 if let key!(Esc) = key {
290− if self.state.is_empty() {
290+ if !self.state.is_empty() {
291+ return KeymapResult::new(
292+ // Note that Esc is not included here
293+ KeymapResultKind::Cancelled(self.state.drain(..).collect()),
291− self.sticky = None;
294+ self.sticky(),
293− return KeymapResult::new(
294− KeymapResultKind::Cancelled(self.state.drain(..).collect()),
295− self.sticky(),
297+ self.sticky = None;
299 let first = self.state.get(0).unwrap_or(&key);
300 let first = self.state.get(0).unwrap_or(&key);