branch: externals/corfu
commit fe2f247ded07d9e52f5c31a3319d4385bc6d58dc
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>
corfu-popupinfo: Only hide when selected candidate has changed
---
extensions/corfu-popupinfo.el | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index e43c8e95761..b6bc4d5bf47 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -499,7 +499,9 @@ not be displayed until this command is called again, even if
(cancel-timer corfu-popupinfo--timer)
(setq corfu-popupinfo--timer nil))
(if (and (>= corfu--index 0) (corfu-popupinfo--visible-p corfu--frame))
- (let ((cand (nth corfu--index corfu--candidates)))
+ (let* ((cand (nth corfu--index corfu--candidates))
+ (cand-changed (not (equal-including-properties
+ cand corfu-popupinfo--candidate))))
(if-let* ((delay (if (consp corfu-popupinfo-delay)
(funcall (if (eq corfu-popupinfo--toggle 'init)
#'car #'cdr)
corfu-popupinfo-delay)
@@ -508,13 +510,14 @@ not be displayed until this command is called again, even
if
(progn
(when (and (corfu-popupinfo--visible-p) (> delay 0))
(cond
- (corfu-popupinfo-hide
+ ((and corfu-popupinfo-hide cand-changed)
(corfu-popupinfo--hide))
(corfu-popupinfo--candidate
(corfu-popupinfo--show corfu-popupinfo--candidate))))
- (setq corfu-popupinfo--timer
- (run-at-time delay nil #'corfu-popupinfo--show cand)))
- (unless (equal-including-properties cand
corfu-popupinfo--candidate)
+ (when cand-changed
+ (setq corfu-popupinfo--timer
+ (run-at-time delay nil #'corfu-popupinfo--show cand))))
+ (unless cand-changed
(corfu-popupinfo--hide))))
(corfu-popupinfo--hide))))