summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2021-07-11 08:08:20 +0200
committerDaniel Mendler <mail@daniel-mendler.de>2021-07-11 08:08:20 +0200
commit44d49d5ccc376f5a8c7280f76cd7a4eff0fa54a0 (patch)
treebf691ef9072d9a147b7e0915190f8ab26a9f5ef5
parentd42fadcfed963036b1285f90865cff31f1768046 (diff)
Close popup on click
-rw-r--r--corfu.el8
1 files changed, 8 insertions, 0 deletions
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)