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

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

[elpa] externals/vertico 6e6c3bf159: vertico-buffer: Restore window for


From: ELPA Syncer
Subject: [elpa] externals/vertico 6e6c3bf159: vertico-buffer: Restore window for read-minibuffer-restore-windows=nil (Fix #299)
Date: Tue, 13 Dec 2022 08:58:24 -0500 (EST)

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

    vertico-buffer: Restore window for read-minibuffer-restore-windows=nil (Fix 
#299)
---
 extensions/vertico-buffer.el | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/extensions/vertico-buffer.el b/extensions/vertico-buffer.el
index 428b0f4b62..dec025ba8f 100644
--- a/extensions/vertico-buffer.el
+++ b/extensions/vertico-buffer.el
@@ -90,7 +90,7 @@
 (defun vertico-buffer--setup ()
   "Setup buffer display."
   (add-hook 'pre-redisplay-functions 'vertico-buffer--redisplay nil 'local)
-  (let* ((action vertico-buffer-display-action) tmp win
+  (let* ((action vertico-buffer-display-action) tmp win old-buf
          (_ (unwind-protect
                 (progn
                   (with-current-buffer (setq tmp (generate-new-buffer 
"*vertico-buffer*"))
@@ -99,7 +99,9 @@
                     (setq major-mode 'vertico-buffer-mode))
                   ;; Temporarily select the original window such
                   ;; that `display-buffer-same-window' works.
-                  (setq win (with-minibuffer-selected-window (display-buffer 
tmp action)))
+                  (setq old-buf (mapcar (lambda (win) (cons win (window-buffer 
win))) (window-list))
+                        win (with-minibuffer-selected-window (display-buffer 
tmp action))
+                        old-buf (alist-get win old-buf))
                   (set-window-buffer win (current-buffer)))
               (kill-buffer tmp)))
          (sym (make-symbol "vertico-buffer--destroy"))
@@ -109,9 +111,11 @@
     (fset sym (lambda ()
                 (when (= depth (recursion-depth))
                   (with-selected-window (active-minibuffer-window)
-                    (when (window-live-p win)
+                    (if (not (and (window-live-p win) (buffer-live-p old-buf)))
+                        (delete-window win)
                       (set-window-parameter win 'no-other-window now)
-                      (set-window-parameter win 'no-delete-other-windows ndow))
+                      (set-window-parameter win 'no-delete-other-windows ndow)
+                      (set-window-buffer win old-buf))
                     (when vertico-buffer-hide-prompt
                       (set-window-vscroll nil 0))
                     (remove-hook 'minibuffer-exit-hook sym)))))



reply via email to

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