Commit 9aba119d authored by Martin Rudalics's avatar Martin Rudalics
Browse files

Handle evening window heights more correctly (Bug#11880) and (Bug#12091).

* window.el (window--even-window-heights): Even heights when
WINDOW and the selected window form a vertical combination.
(display-buffer-use-some-window): Provide that window used gets
sized back by quit-window.  (Bug#11880) and (Bug#12091)
parent 8966cbff
2012-08-25 Martin Rudalics <rudalics@gmx.at>
* window.el (window--even-window-heights): Even heights when
WINDOW and the selected window form a vertical combination.
(display-buffer-use-some-window): Provide that window used gets
sized back by quit-window. (Bug#11880) and (Bug#12091)
2012-08-24 Paul Eggert <eggert@cs.ucla.edu>
 
Fix file time stamp problem with bzr and CVS (Bug#12001).
......
......@@ -4911,23 +4911,19 @@ Do this only if these windows are vertically adjacent to each
other, `even-window-heights' is non-nil, and the selected window
is higher than WINDOW."
(when (and even-window-heights
(not (eq window (selected-window)))
;; Don't resize minibuffer windows.
(not (window-minibuffer-p (selected-window)))
(> (window-height (selected-window)) (window-height window))
(eq (window-frame window) (window-frame (selected-window)))
(let ((sel-edges (window-edges (selected-window)))
(win-edges (window-edges window)))
(and (= (nth 0 sel-edges) (nth 0 win-edges))
(= (nth 2 sel-edges) (nth 2 win-edges))
(or (= (nth 1 sel-edges) (nth 3 win-edges))
(= (nth 3 sel-edges) (nth 1 win-edges))))))
(let ((window-min-height 1))
;; Don't throw an error if we can't even window heights for
;; whatever reason.
(condition-case nil
(enlarge-window (/ (- (window-height window) (window-height)) 2))
(error nil)))))
;; Even iff WINDOW forms a vertical combination with the
;; selected window, and WINDOW's height exceeds that of the
;; selected window, see also bug#11880.
(window-combined-p window)
(= (window-child-count (window-parent window)) 2)
(eq (window-parent) (window-parent window))
(> (window-total-height) (window-total-height window)))
;; Don't throw an error if we can't even window heights for
;; whatever reason.
(condition-case nil
(enlarge-window
(/ (- (window-total-height window) (window-total-height)) 2))
(error nil))))
(defun window--display-buffer (buffer window type &optional dedicated)
"Display BUFFER in WINDOW and make its frame visible.
......@@ -5334,8 +5330,9 @@ that frame."
window))
(get-largest-window 0 not-this-window))))
(when (window-live-p window)
(window--even-window-heights window)
(prog1 (window--display-buffer buffer window 'reuse)
(prog1
(window--display-buffer buffer window 'reuse)
(window--even-window-heights window)
(unless (cdr (assq 'inhibit-switch-frame alist))
(window--maybe-raise-frame (window-frame window)))))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment