[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master f974317: In display-buffer-record-window record sel
From: |
Martin Rudalics |
Subject: |
[Emacs-diffs] master f974317: In display-buffer-record-window record selected window if necessary. |
Date: |
Wed, 22 Apr 2015 09:18:52 +0000 |
branch: master
commit f974317897441f638808cbcfecb2c8fd1c0281ec
Author: Martin Rudalics <address@hidden>
Commit: Martin Rudalics <address@hidden>
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).
---
lisp/window.el | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/lisp/window.el b/lisp/window.el
index 46a7dd0..07e477d 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master f974317: In display-buffer-record-window record selected window if necessary.,
Martin Rudalics <=