summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2022-11-29 11:29:16 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2022-11-29 11:29:16 +0100
commite487adf3a6b92a12c7ea9b223e90ec39b327addb (patch)
tree99d2070111a9e5535ba0da5015737b6c13c5b2ef
parentd7628130251c9a60efc8b64f0430d0206afc3da8 (diff)
corfu-popupinfo: Ensure that popup is hidden if corfu-popupinfo-delay is nil
-rw-r--r--extensions/corfu-popupinfo.el30
1 files changed, 16 insertions, 14 deletions
diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index a7a981f..d7ca2ea 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -454,24 +454,26 @@ 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))
- (when-let* ((delay (if (consp corfu-popupinfo-delay)
+ (let ((candidate (nth corfu--index corfu--candidates)))
+ (if-let* ((delay (if (consp corfu-popupinfo-delay)
(funcall (if (eq corfu-popupinfo--toggle 'init) #'car #'cdr)
corfu-popupinfo-delay)
corfu-popupinfo-delay))
(corfu-popupinfo--toggle))
- (let ((candidate (nth corfu--index corfu--candidates)))
- (if (or (eq delay t) (<= delay 0)
- (and (equal candidate corfu-popupinfo--candidate)
- (corfu-popupinfo--visible-p)))
- (corfu-popupinfo--show candidate)
- (when (corfu-popupinfo--visible-p)
- (cond
- (corfu-popupinfo-hide
- (corfu-popupinfo--hide))
- (corfu-popupinfo--candidate
- (corfu-popupinfo--show corfu-popupinfo--candidate))))
- (setq corfu-popupinfo--timer
- (run-at-time delay nil #'corfu-popupinfo--show candidate)))))
+ (if (or (eq delay t) (<= delay 0)
+ (and (equal candidate corfu-popupinfo--candidate)
+ (corfu-popupinfo--visible-p)))
+ (corfu-popupinfo--show candidate)
+ (when (corfu-popupinfo--visible-p)
+ (cond
+ (corfu-popupinfo-hide
+ (corfu-popupinfo--hide))
+ (corfu-popupinfo--candidate
+ (corfu-popupinfo--show corfu-popupinfo--candidate))))
+ (setq corfu-popupinfo--timer
+ (run-at-time delay nil #'corfu-popupinfo--show candidate)))
+ (unless (equal candidate corfu-popupinfo--candidate)
+ (corfu-popupinfo--hide))))
(corfu-popupinfo--hide))))
(defun corfu-popupinfo--teardown ()