@@ -287,13 +287,14 @@ impl Keymap {
287287 /// sticky node is in use, it will be cleared.
288288 pub fn get(&mut self, key: KeyEvent) -> KeymapResult {
289289 if let key!(Esc) = key {
290− if self.state.is_empty() {
291− self.sticky = None;
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()),
294+ self.sticky(),
295+ );
292296 }
293− return KeymapResult::new(
294− KeymapResultKind::Cancelled(self.state.drain(..).collect()),
295− self.sticky(),
296− );
297+ self.sticky = None;
297298 }
298299
299300 let first = self.state.get(0).unwrap_or(&key);