emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/vertico 65f5683 1/2: vertico-buffer: Fix cursor jumping


From: ELPA Syncer
Subject: [elpa] externals/vertico 65f5683 1/2: vertico-buffer: Fix cursor jumping issue in prompt
Date: Tue, 13 Jul 2021 14:57:17 -0400 (EDT)

branch: externals/vertico
commit 65f5683833d73b81f20cdf442d160425baeff60e
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    vertico-buffer: Fix cursor jumping issue in prompt
---
 extensions/vertico-buffer.el | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/extensions/vertico-buffer.el b/extensions/vertico-buffer.el
index 7eb392e..e8b8e89 100644
--- a/extensions/vertico-buffer.el
+++ b/extensions/vertico-buffer.el
@@ -46,7 +46,7 @@
 
 (defun vertico-buffer--display (lines)
   "Display LINES in buffer."
-  (move-overlay vertico-buffer--overlay (point-min) (point-max))
+  (set-window-vscroll nil 100)
   (let ((count (vertico--format-count))
         (prompt (minibuffer-prompt))
         (content (minibuffer-contents)))
@@ -56,14 +56,12 @@
               content "\n" (string-join lines))
       (setq-local truncate-lines (< (point) (* 0.8 (window-width)))))
     (let ((win (or (get-buffer-window vertico-buffer--buffer)
-                   (display-buffer vertico-buffer--buffer 
vertico-buffer-action)))
-          (pt (point)))
+                   (display-buffer vertico-buffer--buffer 
vertico-buffer-action))))
       (overlay-put vertico--candidates-ov 'window win)
       (when vertico--count-ov
         (overlay-put vertico--count-ov 'window win))
-      (with-selected-window win
-        (goto-char (max (+ (point-min) (length prompt) (length count))
-                        (+ pt (length count))))))))
+      (set-window-point win (max (+ 1 (length prompt) (length count))
+                                 (+ (point) (length count)))))))
 
 (defun vertico-buffer--select (_)
   "Ensure that cursor is only shown if minibuffer is selected."
@@ -76,6 +74,7 @@
 
 (defun vertico-buffer--destroy ()
   "Destroy Vertico buffer."
+  (set-window-vscroll nil 0)
   (kill-buffer vertico-buffer--buffer))
 
 (defun vertico-buffer--setup ()
@@ -83,10 +82,10 @@
   (add-hook 'window-selection-change-functions 'vertico-buffer--select nil 
'local)
   (add-hook 'minibuffer-exit-hook 'vertico-buffer--destroy nil 'local)
   (setq-local cursor-type '(bar . 0))
-  (setq vertico-buffer--overlay (make-overlay (point-max) (point-max)))
+  (setq vertico-buffer--overlay (make-overlay (point-max) (point-max) nil t t))
   (overlay-put vertico-buffer--overlay 'window (selected-window))
   (overlay-put vertico-buffer--overlay 'priority 1000)
-  (overlay-put vertico-buffer--overlay 'invisible t)
+  (overlay-put vertico-buffer--overlay 'before-string "\n\n")
   (setq vertico-buffer--buffer (get-buffer-create
                                 (if (= 1 (recursion-depth))
                                     " *Vertico*"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]