summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2022-02-09 17:54:42 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2022-02-09 17:54:42 +0100
commitdde834126c2abcc0e518330ab15f17caffe6e824 (patch)
treecd712fe251c2060f007bd08dd4a6963d059186c8
parent5d99b9ed0c617941ea1e9cd289393a35cb6adfe6 (diff)
Do not discard input event
-rw-r--r--cape.el9
1 files changed, 5 insertions, 4 deletions
diff --git a/cape.el b/cape.el
index d77051a..13c1e5d 100644
--- a/cape.el
+++ b/cape.el
@@ -884,10 +884,11 @@ If INTERACTIVE is nil the function acts like a capf."
(when (eq res 'cape--waiting)
(push 'cape--done unread-command-events))
(setq res arg)))
- (let ((input-method-function nil))
- (read-event nil t))
- (when (eq res 'cape--waiting)
- (throw toi t)))
+ (let ((ev (let (input-method-function) (read-event nil t))))
+ (when (eq res 'cape--waiting)
+ (unless (eq ev 'cape--done)
+ (push (cons t ev) unread-command-events))
+ (throw toi t))))
(setq unread-command-events
(delq 'cape--done unread-command-events)))
(funcall fetch (lambda (arg) (setq res arg)))