diff options
| -rw-r--r-- | lisp/window.el | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/window.el b/lisp/window.el index 46a7dd08275..07e477d7799 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -5474,10 +5474,15 @@ element is BUFFER." | |||
| 5474 | (cond | 5474 | (cond |
| 5475 | ((eq type 'reuse) | 5475 | ((eq type 'reuse) |
| 5476 | (if (eq (window-buffer window) buffer) | 5476 | (if (eq (window-buffer window) buffer) |
| 5477 | ;; WINDOW shows BUFFER already. | 5477 | ;; WINDOW shows BUFFER already. Update WINDOW's quit-restore |
| 5478 | (when (consp (window-parameter window 'quit-restore)) | 5478 | ;; parameter, if any. |
| 5479 | ;; If WINDOW has a quit-restore parameter, reset its car. | 5479 | (let ((quit-restore (window-parameter window 'quit-restore))) |
| 5480 | (setcar (window-parameter window 'quit-restore) 'same)) | 5480 | (when (consp quit-restore) |
| 5481 | (setcar quit-restore 'same) | ||
| 5482 | ;; The selected-window might have changed in | ||
| 5483 | ;; between (Bug#20353). | ||
| 5484 | (unless (memq (selected-window) '(window (nth 2 quit-restore))) | ||
| 5485 | (setcar (cddr quit-restore) (selected-window))))) | ||
| 5481 | ;; WINDOW shows another buffer. | 5486 | ;; WINDOW shows another buffer. |
| 5482 | (with-current-buffer (window-buffer window) | 5487 | (with-current-buffer (window-buffer window) |
| 5483 | (set-window-parameter | 5488 | (set-window-parameter |