In display-buffer-record-window record selected window if necessary.

* lisp/window.el (display-buffer-record-window): Store selected window
if it differs from 3rd element of 'quit-restore' parameter (Bug#20353).
This commit is contained in:
Martin Rudalics 2015-04-22 11:17:27 +02:00
parent 9b5d3846bb
commit f974317897

View file

@ -5474,10 +5474,15 @@ element is BUFFER."
(cond
((eq type 'reuse)
(if (eq (window-buffer window) buffer)
;; WINDOW shows BUFFER already.
(when (consp (window-parameter window 'quit-restore))
;; If WINDOW has a quit-restore parameter, reset its car.
(setcar (window-parameter window 'quit-restore) 'same))
;; WINDOW shows BUFFER already. Update WINDOW's quit-restore
;; parameter, if any.
(let ((quit-restore (window-parameter window 'quit-restore)))
(when (consp quit-restore)
(setcar quit-restore 'same)
;; The selected-window might have changed in
;; between (Bug#20353).
(unless (memq (selected-window) '(window (nth 2 quit-restore)))
(setcar (cddr quit-restore) (selected-window)))))
;; WINDOW shows another buffer.
(with-current-buffer (window-buffer window)
(set-window-parameter