branch: externals/corfu
commit 44d49d5ccc376f5a8c7280f76cd7a4eff0fa54a0
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Close popup on click
---
 corfu.el | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/corfu.el b/corfu.el
index 15f279c..2bf47af 100644
--- a/corfu.el
+++ b/corfu.el
@@ -243,11 +243,19 @@ filter string with spaces is allowed."
     (buffer-read-only . t))
   "Default child frame buffer parameters.")
 
+(defun corfu--popup-hide-on-click ()
+  "Close if mouse events land in the popup."
+  (when (mouse-event-p last-input-event)
+    (select-frame (frame-parent corfu--frame) 'norecord)
+    (corfu--popup-hide)
+    (setq this-command #'ignore)))
+
 (defun corfu--make-buffer (content)
   "Create corfu buffer with CONTENT."
   (let ((fr face-remapping-alist)
         (buffer (get-buffer-create " *corfu*")))
     (with-current-buffer buffer
+      (add-hook 'pre-command-hook #'corfu--popup-hide-on-click nil 'local)
       (dolist (var corfu--buffer-parameters)
         (set (make-local-variable (car var)) (cdr var)))
       (setq-local face-remapping-alist fr)

Reply via email to