Fix use of 'switch-to-buffer-preserve-window-point'
* lisp/window.el (switch-to-buffer): Respect buffer local value of 'switch-to-buffer-preserve-window-point' variable.
This commit is contained in:
parent
4457b9590c
commit
8a27b0cad7
1 changed files with 5 additions and 5 deletions
|
@ -8566,13 +8566,13 @@ Return the buffer switched to."
|
|||
|
||||
(when set-window-start-and-point
|
||||
(let* ((entry (assq buffer (window-prev-buffers)))
|
||||
(displayed (and (eq switch-to-buffer-preserve-window-point
|
||||
'already-displayed)
|
||||
(preserve-win-point
|
||||
(buffer-local-value 'switch-to-buffer-preserve-window-point
|
||||
buffer))
|
||||
(displayed (and (eq preserve-win-point 'already-displayed)
|
||||
(get-buffer-window buffer 0))))
|
||||
(set-window-buffer nil buffer)
|
||||
(when (and entry
|
||||
(or (eq switch-to-buffer-preserve-window-point t)
|
||||
displayed))
|
||||
(when (and entry (or (eq preserve-win-point t) displayed))
|
||||
;; Try to restore start and point of buffer in the selected
|
||||
;; window (Bug#4041).
|
||||
(set-window-start (selected-window) (nth 1 entry) t)
|
||||
|
|
Loading…
Add table
Reference in a new issue