summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <public@thanosapollo.org>2026-04-28 18:40:24 +0300
committerThanos Apollo <public@thanosapollo.org>2026-04-28 18:40:24 +0300
commit642ab7fee1136dbadf7bff1724f5f6b8e3e38bbc (patch)
treeae33b9e08cc41efd1ec92e5fa5ec48c6681da627
parenteec94d75f9770e306747cea5cbd7ba9bafd9b1d0 (diff)
fix: guard keep-pred against dead popup buffer
-rw-r--r--keymap-popup.el18
1 files changed, 10 insertions, 8 deletions
diff --git a/keymap-popup.el b/keymap-popup.el
index 0610799..f549258 100644
--- a/keymap-popup.el
+++ b/keymap-popup.el
@@ -688,14 +688,16 @@ Drops entries whose command has no binding."
"Return a keep-pred for `set-transient-map'.
Reads state from BUF. Consumes the reentering flag on read."
(lambda ()
- (or (when (buffer-local-value 'keymap-popup--reentering buf)
- (with-current-buffer buf
- (setq-local keymap-popup--reentering nil))
- t)
- (and-let* ((keys (this-command-keys-vector))
- (key-str (key-description keys))
- (descs (buffer-local-value 'keymap-popup--active-descriptions buf)))
- (keymap-popup--keep-popup-p descs key-str)))))
+ (and (buffer-live-p buf)
+ (or (when (buffer-local-value 'keymap-popup--reentering buf)
+ (with-current-buffer buf
+ (setq-local keymap-popup--reentering nil))
+ t)
+ (and-let* ((keys (this-command-keys-vector))
+ (key-str (key-description keys))
+ (descs (buffer-local-value 'keymap-popup--active-descriptions buf)))
+ (keymap-popup--keep-popup-p descs key-str))))))
+
(defun keymap-popup--make-post-command-fn (buf)
"Return a post-command-hook function that refreshes BUF.