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))
|
,(corfu-mouse--candidate-map index))
|
||||||
line)
|
line)
|
||||||
(setcar cands line)
|
(setcar cands line)
|
||||||
(setq cands (cdr cands))))
|
(setq cands (cdr cands))
|
||||||
(setq index (1+ index))
|
(setq index (1+ index))))
|
||||||
fcands))
|
fcands))
|
||||||
|
|
||||||
(defun corfu-mouse--scroll-up (n)
|
(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)))
|
(setq-local corfu-mouse--completion-buffer current-buffer)))
|
||||||
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
|
;;;###autoload
|
||||||
(define-minor-mode corfu-mouse-mode
|
(define-minor-mode corfu-mouse-mode
|
||||||
"Mouse support for Corfu."
|
"Mouse support for Corfu."
|
||||||
|
@ -119,12 +124,19 @@ FCANDS is the return value of `corfu--format-candidates'."
|
||||||
#'corfu-mouse--format-candidates)
|
#'corfu-mouse--format-candidates)
|
||||||
(advice-add #'corfu--make-buffer :filter-return
|
(advice-add #'corfu--make-buffer :filter-return
|
||||||
#'corfu-mouse--setup-scrolling)
|
#'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)
|
(dolist (event scroll-events)
|
||||||
(define-key corfu--mouse-ignore-map (vector event) nil)))
|
(define-key corfu--mouse-ignore-map (vector event) nil)))
|
||||||
(t
|
(t
|
||||||
(advice-remove #'corfu--format-candidates
|
(advice-remove #'corfu--format-candidates
|
||||||
#'corfu-mouse--format-candidates)
|
#'corfu-mouse--format-candidates)
|
||||||
(advice-remove #'corfu--make-buffer #'corfu-mouse--setup-scrolling)
|
(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)
|
(dolist (event scroll-events)
|
||||||
(define-key corfu--mouse-ignore-map (vector event) #'ignore))))))
|
(define-key corfu--mouse-ignore-map (vector event) #'ignore))))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue