branch: elpa/dirvish commit 6df1a9cb979350a6406d3ee89713ab568c98a7d0 Author: Alex Lu <hellosimon1...@hotmail.com> Commit: Alex Lu <hellosimon1...@hotmail.com>
fix(core): error on `dirvish-winbuf-change-h` --- dirvish.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dirvish.el b/dirvish.el index c1e2d9e15e..926074aaa6 100644 --- a/dirvish.el +++ b/dirvish.el @@ -810,7 +810,18 @@ When FORCE, ensure the preview get refreshed." (defun dirvish-winbuf-change-h (window) "Rebuild layout once buffer in WINDOW changed." (with-current-buffer (window-buffer window) - (when-let* ((dv (dirvish-curr))) (dirvish--init-session dv)))) + (when-let* ((dv (dirvish-curr))) + (let ((saved-layout (car (dv-layout dv))) + (saved-winconf (dv-winconf dv))) + ;; rebuild a fullframe session as a single pane session temporarily, for + ;; cases when a buried dirvish buffers is selected by minibuffer + ;; commands such as `consult-buffer'. + (cond ((and (active-minibuffer-window) saved-layout) + (setcar (dv-layout dv) nil) + (dirvish--init-session dv) + (setcar (dv-layout dv) saved-layout) + (setf (dv-winconf dv) saved-winconf)) + (t (dirvish--init-session dv))))))) (defun dirvish-tab-new-post-h (_tab) "Do not reuse sessions from other tabs."