diff options
| author | Thanos Apollo <public@thanosapollo.org> | 2026-04-28 18:40:24 +0300 |
|---|---|---|
| committer | Thanos Apollo <public@thanosapollo.org> | 2026-04-28 18:40:24 +0300 |
| commit | 642ab7fee1136dbadf7bff1724f5f6b8e3e38bbc (patch) | |
| tree | ae33b9e08cc41efd1ec92e5fa5ec48c6681da627 | |
| parent | eec94d75f9770e306747cea5cbd7ba9bafd9b1d0 (diff) | |
fix: guard keep-pred against dead popup buffer
| -rw-r--r-- | keymap-popup.el | 18 |
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. |
