1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-28 07:45:00 +00:00

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)
This commit is contained in:
Martin Rudalics 2012-08-25 16:52:02 +02:00
parent 8966cbffe8
commit 9aba119d72
2 changed files with 23 additions and 19 deletions

View File

@ -1,3 +1,10 @@
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).

View File

@ -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)))))))