Shrink this window if its buffer doesn't need so many lines
(@code{shrink-window-if-larger-than-buffer}).
@item C-x +
-Make all windows the same height (@code{balance-windows}).
+Balance the sizes of all the windows of the selected frame
+(@code{balance-windows}).
@end table
@kindex C-x 0
@kindex C-x +
@findex balance-windows
- You can also use @kbd{C-x +} (@code{balance-windows}) to even out the
-heights of all the windows in the selected frame.
+ You can also use @kbd{C-x +} (@code{balance-windows}) to balance the
+sizes of all the windows of the selected frame (with the exception of
+the minibuffer window, @pxref{Minibuffer}). This command makes each
+horizontal pair of adjacent windows the same height, and each vertical
+pair of adjacent windows the same width.
@node Displaying Buffers
@section Displaying a Buffer in a Window
(setq sub (window-right sub))))))))
(defun balance-windows (&optional window-or-frame)
- "Balance the sizes of windows of WINDOW-OR-FRAME.
-WINDOW-OR-FRAME is optional and defaults to the selected frame.
+ "Balance the sizes of windows shown on the selected frame.
+When called from Lisp, WINDOW-OR-FRAME is optional and defaults to the
+selected frame.
If WINDOW-OR-FRAME denotes a frame, balance the sizes of all
-windows of that frame. If WINDOW-OR-FRAME denotes a window,
-recursively balance the sizes of all child windows of that
-window."
+windows of that frame's root window (which excludes the mini-window).
+If WINDOW-OR-FRAME denotes a window, recursively balance the sizes
+of all child windows of that window."
(interactive)
(let* ((window
(cond