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