Fix error when the preselected candidate is not selected
This commit is contained in:
parent
232592c6b8
commit
8914cfc360
|
@ -53,17 +53,19 @@
|
|||
|
||||
(defun corfu-mouse--candidate-map (index)
|
||||
"Return keymap for candidate with INDEX."
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map [mouse-1]
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(corfu--goto index)
|
||||
(corfu-insert)))
|
||||
(define-key map [mouse-3]
|
||||
(lambda ()
|
||||
(interactive)
|
||||
(corfu--goto index)
|
||||
(corfu-complete)))
|
||||
(let ((map (make-sparse-keymap))
|
||||
(mouse-1 (make-symbol "corfu-mouse--on-mouse-1"))
|
||||
(mouse-3 (make-symbol "corfu-mouse--on-mouse-3")))
|
||||
(fset mouse-1 (lambda ()
|
||||
(interactive)
|
||||
(corfu--goto index)
|
||||
(corfu-insert)))
|
||||
(fset mouse-3 (lambda ()
|
||||
(interactive)
|
||||
(corfu--goto index)
|
||||
(corfu-complete)))
|
||||
(define-key map [mouse-1] mouse-1)
|
||||
(define-key map [mouse-3] mouse-3)
|
||||
map))
|
||||
|
||||
(defun corfu-mouse--format-candidates (fcands)
|
||||
|
@ -117,7 +119,10 @@ FCANDS is the return value of `corfu--format-candidates'."
|
|||
:global t :group 'corfu
|
||||
(let ((scroll-events '(mouse-4 mouse-5 down-mouse-4 down-mouse-5
|
||||
double-mouse-4 double-mouse-5
|
||||
triple-mouse-4 triple-mouse-5)))
|
||||
triple-mouse-4 triple-mouse-5))
|
||||
(continue-commands '("corfu-mouse--on-mouse-1"
|
||||
"corfu-mouse--on-mouse-3"
|
||||
mwheel-scroll mouse-drag-region)))
|
||||
(cond
|
||||
(corfu-mouse-mode
|
||||
(advice-add #'corfu--format-candidates :filter-return
|
||||
|
@ -126,7 +131,8 @@ FCANDS is the return value of `corfu--format-candidates'."
|
|||
#'corfu-mouse--setup-scrolling)
|
||||
(advice-add #'corfu--post-command :before
|
||||
#'corfu-mouse--post-command-set-buffer)
|
||||
(push #'mwheel-scroll corfu-continue-commands)
|
||||
(setq corfu-continue-commands
|
||||
(append corfu-continue-commands continue-commands))
|
||||
(dolist (event scroll-events)
|
||||
(define-key corfu--mouse-ignore-map (vector event) nil)))
|
||||
(t
|
||||
|
@ -135,8 +141,9 @@ FCANDS is the return value of `corfu--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 (command continue-commands)
|
||||
(setq corfu-continue-commands
|
||||
(delete command corfu-continue-commands)))
|
||||
(dolist (event scroll-events)
|
||||
(define-key corfu--mouse-ignore-map (vector event) #'ignore))))))
|
||||
|
||||
|
|
Loading…
Reference in New Issue