aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/window.el33
2 files changed, 30 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 774c3c62606..a9779c010f8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12008-11-27 Martin Rudalics <rudalics@gmx.at>
2
3 * window.el (display-buffer): Fix handling of not-this-window
4 argument. (Bug#1415)
5
12008-11-27 Kenichi Handa <handa@m17n.org> 62008-11-27 Kenichi Handa <handa@m17n.org>
2 7
3 * international/characters.el: Set category 'C' to characters 8 * international/characters.el: Set category 'C' to characters
diff --git a/lisp/window.el b/lisp/window.el
index 02af7bd6c54..6373185ffaa 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -1038,14 +1038,31 @@ consider all visible or iconified frames."
1038 (window--try-to-split-window 1038 (window--try-to-split-window
1039 (get-lru-window frame-to-use t)))) 1039 (get-lru-window frame-to-use t))))
1040 (window--display-buffer-2 buffer window-to-use))) 1040 (window--display-buffer-2 buffer window-to-use)))
1041 ((setq window-to-use 1041 ((let ((window-to-undedicate
1042 ;; Reuse an existing window. 1042 ;; When NOT-THIS-WINDOW is non-nil, temporarily dedicate
1043 (or (get-lru-window frame-to-use) 1043 ;; the selected window to its buffer, to avoid that some of
1044 (get-buffer-window buffer 'visible) 1044 ;; the `get-' routines below choose it. (Bug#1415)
1045 (get-largest-window 'visible nil) 1045 (and not-this-window (not (window-dedicated-p))
1046 (get-buffer-window buffer 0) 1046 (set-window-dedicated-p (selected-window) t)
1047 (get-largest-window 0 nil) 1047 (selected-window))))
1048 (frame-selected-window (funcall pop-up-frame-function)))) 1048 (unwind-protect
1049 (setq window-to-use
1050 ;; Reuse an existing window.
1051 (or (get-lru-window frame-to-use)
1052 (let ((window (get-buffer-window buffer 'visible)))
1053 (unless (and not-this-window
1054 (eq window (selected-window)))
1055 window))
1056 (get-largest-window 'visible)
1057 (let ((window (get-buffer-window buffer 0)))
1058 (unless (and not-this-window
1059 (eq window (selected-window)))
1060 window))
1061 (get-largest-window 0)
1062 (frame-selected-window (funcall pop-up-frame-function))))
1063 (when (window-live-p window-to-undedicate)
1064 ;; Restore dedicated status of selected window.
1065 (set-window-dedicated-p window-to-undedicate nil))))
1049 (window--even-window-heights window-to-use) 1066 (window--even-window-heights window-to-use)
1050 (window--display-buffer-2 buffer window-to-use))))) 1067 (window--display-buffer-2 buffer window-to-use)))))
1051 1068