Fix mouse click and scrolling problems

This commit is contained in:
Akib Azmain Turja 2022-06-27 17:20:17 +06:00
parent d121e4e40e
commit d0fdc8924b
No known key found for this signature in database
GPG Key ID: 5535FCF54D88616B
1 changed files with 14 additions and 2 deletions

View File

@ -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))))))