diff --git a/lisp/window.el b/lisp/window.el index 2b979f4..20864c6 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4627,6 +4627,15 @@ bury-buffer ((or buffer-or-name (not (eq buffer (window-buffer))))) ((window--delete nil t)) (t + (let ((quit-restore (window-parameter nil 'quit-restore)) + quad) + (when (and (eq (car quit-restore) 'other) + (consp (setq quad (nth 1 quit-restore))) + (eq (car quad) buffer)) + ;; Reset selected window's 'quit-restore' parameter to avoid + ;; that the buffer is restored in that window by a subsequent + ;; ‘quit-window'. + (set-window-parameter nil 'quit-restore nil))) ;; Switch to another buffer in window. (set-window-dedicated-p nil nil) (switch-to-prev-buffer nil 'bury)))