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)
|
(defun corfu-mouse--candidate-map (index)
|
||||||
"Return keymap for candidate with INDEX."
|
"Return keymap for candidate with INDEX."
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap))
|
||||||
(define-key map [mouse-1]
|
(mouse-1 (make-symbol "corfu-mouse--on-mouse-1"))
|
||||||
(lambda ()
|
(mouse-3 (make-symbol "corfu-mouse--on-mouse-3")))
|
||||||
|
(fset mouse-1 (lambda ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(corfu--goto index)
|
(corfu--goto index)
|
||||||
(corfu-insert)))
|
(corfu-insert)))
|
||||||
(define-key map [mouse-3]
|
(fset mouse-3 (lambda ()
|
||||||
(lambda ()
|
|
||||||
(interactive)
|
(interactive)
|
||||||
(corfu--goto index)
|
(corfu--goto index)
|
||||||
(corfu-complete)))
|
(corfu-complete)))
|
||||||
|
(define-key map [mouse-1] mouse-1)
|
||||||
|
(define-key map [mouse-3] mouse-3)
|
||||||
map))
|
map))
|
||||||
|
|
||||||
(defun corfu-mouse--format-candidates (fcands)
|
(defun corfu-mouse--format-candidates (fcands)
|
||||||
|
@ -117,7 +119,10 @@ FCANDS is the return value of `corfu--format-candidates'."
|
||||||
:global t :group 'corfu
|
:global t :group 'corfu
|
||||||
(let ((scroll-events '(mouse-4 mouse-5 down-mouse-4 down-mouse-5
|
(let ((scroll-events '(mouse-4 mouse-5 down-mouse-4 down-mouse-5
|
||||||
double-mouse-4 double-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
|
(cond
|
||||||
(corfu-mouse-mode
|
(corfu-mouse-mode
|
||||||
(advice-add #'corfu--format-candidates :filter-return
|
(advice-add #'corfu--format-candidates :filter-return
|
||||||
|
@ -126,7 +131,8 @@ FCANDS is the return value of `corfu--format-candidates'."
|
||||||
#'corfu-mouse--setup-scrolling)
|
#'corfu-mouse--setup-scrolling)
|
||||||
(advice-add #'corfu--post-command :before
|
(advice-add #'corfu--post-command :before
|
||||||
#'corfu-mouse--post-command-set-buffer)
|
#'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)
|
(dolist (event scroll-events)
|
||||||
(define-key corfu--mouse-ignore-map (vector event) nil)))
|
(define-key corfu--mouse-ignore-map (vector event) nil)))
|
||||||
(t
|
(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--make-buffer #'corfu-mouse--setup-scrolling)
|
||||||
(advice-remove #'corfu--post-command
|
(advice-remove #'corfu--post-command
|
||||||
#'corfu-mouse--post-command-set-buffer)
|
#'corfu-mouse--post-command-set-buffer)
|
||||||
|
(dolist (command continue-commands)
|
||||||
(setq corfu-continue-commands
|
(setq corfu-continue-commands
|
||||||
(delete #'mwheel-scroll corfu-continue-commands))
|
(delete command 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