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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user