Fix mouse click and scrolling problems
This commit is contained in:
parent
d121e4e40e
commit
d0fdc8924b
|
@ -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))))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue