From d0fdc8924b097f0b9bdeb8860c7bbab3442f985c Mon Sep 17 00:00:00 2001 From: Akib Azmain Turja Date: Mon, 27 Jun 2022 17:20:17 +0600 Subject: [PATCH] Fix mouse click and scrolling problems --- corfu-mouse.el | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/corfu-mouse.el b/corfu-mouse.el index 75ef208..ae2043d 100644 --- a/corfu-mouse.el +++ b/corfu-mouse.el @@ -84,8 +84,8 @@ FCANDS is the return value of `corfu--format-candidates'." ,(corfu-mouse--candidate-map index)) line) (setcar cands line) - (setq cands (cdr cands)))) - (setq index (1+ index)) + (setq cands (cdr cands)) + (setq index (1+ index)))) fcands)) (defun corfu-mouse--scroll-up (n) @@ -106,6 +106,11 @@ FCANDS is the return value of `corfu--format-candidates'." (setq-local corfu-mouse--completion-buffer current-buffer))) buffer) +(defun corfu-mouse--post-command-set-buffer () + "Set `corfu-mouse--completion-buffer' the current buffer." + (when corfu-mouse--completion-buffer + (switch-to-buffer corfu-mouse--completion-buffer))) + ;;;###autoload (define-minor-mode corfu-mouse-mode "Mouse support for Corfu." @@ -119,12 +124,19 @@ FCANDS is the return value of `corfu--format-candidates'." #'corfu-mouse--format-candidates) (advice-add #'corfu--make-buffer :filter-return #'corfu-mouse--setup-scrolling) + (advice-add #'corfu--post-command :before + #'corfu-mouse--post-command-set-buffer) + (push #'mwheel-scroll corfu-continue-commands) (dolist (event scroll-events) (define-key corfu--mouse-ignore-map (vector event) nil))) (t (advice-remove #'corfu--format-candidates #'corfu-mouse--format-candidates) (advice-remove #'corfu--make-buffer #'corfu-mouse--setup-scrolling) + (advice-remove #'corfu--post-command + #'corfu-mouse--post-command-set-buffer) + (setq corfu-continue-commands + (delete #'mwheel-scroll corfu-continue-commands)) (dolist (event scroll-events) (define-key corfu--mouse-ignore-map (vector event) #'ignore))))))