branch: externals/corfu commit e487adf3a6b92a12c7ea9b223e90ec39b327addb Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
corfu-popupinfo: Ensure that popup is hidden if corfu-popupinfo-delay is nil --- extensions/corfu-popupinfo.el | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el index a7a981fe32..d7ca2eaaae 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 ()