Fix control buffer window height in 'ediff-setup-control-buffer' (Bug#49277)
* lisp/vc/ediff-util.el (ediff-setup-control-buffer): Emulate original 'shrink-window-if-larger-than-buffer' call by calling 'fit-window-to-buffer' with an appropriate maximum height argument (Bug#49277).
This commit is contained in:
parent
7078f32b5b
commit
1e578267fb
1 changed files with 19 additions and 1 deletions
|
@ -521,7 +521,25 @@ to invocation.")
|
|||
(erase-buffer)
|
||||
(ediff-set-help-message)
|
||||
(insert ediff-help-message)
|
||||
(shrink-window-if-larger-than-buffer)
|
||||
;; With the fix for Bug#49277 and an 'ediff-setup-windows-plain'
|
||||
;; layout, the window of the control buffer we want to adjust here
|
||||
;; is no longer the lower of two windows on their frame both showing
|
||||
;; that control buffer but rather the bottom-most window in the
|
||||
;; established ediff layout for that frame. As a consequence,
|
||||
;; 'shrink-window-if-larger-than-buffer' will fail to show the whole
|
||||
;; buffer with 'ediff-toggle-help' because that window's maximum
|
||||
;; height is not half the height of its frame but the height of the
|
||||
;; control buffer's window in the established layout (Bug#52504).
|
||||
;;
|
||||
;; The form below is an attempt to emulate the behavior of Emacs 27
|
||||
;; as faithfully as possible in this regard (the use of 'ceiling'
|
||||
;; mimics the behavior of 'split-window' giving the lower window the
|
||||
;; residue line when the window to split has an uneven number of
|
||||
;; lines).
|
||||
(when (and (window-combined-p)
|
||||
(pos-visible-in-window-p (point-min)))
|
||||
(fit-window-to-buffer
|
||||
nil (ceiling (/ (window-total-height (frame-root-window)) 2.0))))
|
||||
(or (ediff-multiframe-setup-p)
|
||||
(ediff-indent-help-message))
|
||||
(ediff-set-help-overlays)
|
||||
|
|
Loading…
Add table
Reference in a new issue