diff --git a/lisp/window.el b/lisp/window.el index 358d7bc..4fd1c10 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -5986,7 +5986,10 @@ display-buffer-record-window shown in the window, that buffer's window start and window point, and the window's height. The third element is the window selected at the time the parameter was created. The fourth -element is BUFFER." +element is BUFFER. + +When TYPE equals `window' or `frame' this function also clears +the list of previous buffers of WINDOW." (cond ((eq type 'reuse) (if (eq (window-buffer window) buffer) @@ -6018,12 +6021,14 @@ display-buffer-record-window ;; WINDOW has been created on an existing frame. (set-window-parameter window 'quit-restore - (list 'window 'window (selected-window) buffer))) + (list 'window 'window (selected-window) buffer)) + (set-window-prev-buffers window nil)) ((eq type 'frame) ;; WINDOW has been created on a new frame. (set-window-parameter window 'quit-restore - (list 'frame 'frame (selected-window) buffer))))) + (list 'frame 'frame (selected-window) buffer))) + (set-window-prev-buffers window nil))) (defcustom display-buffer-function nil "If non-nil, function to call to handle `display-buffer'. @@ -6643,11 +6648,9 @@ window--display-buffer (display-buffer-record-window type window buffer) (unless (eq buffer (window-buffer window)) (set-window-dedicated-p window nil) - (set-window-buffer window buffer) - (when dedicated - (set-window-dedicated-p window dedicated)) - (when (memq type '(window frame)) - (set-window-prev-buffers window nil))) + (set-window-buffer window buffer)) + (when (and dedicated (memq type '(window frame))) + (set-window-dedicated-p window dedicated)) (let ((quit-restore (window-parameter window 'quit-restore)) (height (cdr (assq 'window-height alist))) (width (cdr (assq 'window-width alist)))