Variable: window-combination-limit
window-combination-limit is a customizable variable defined in
window.c.
Value
window-size
Documentation
If non-nil, splitting a window makes a new parent window.
The following values are recognized:
nil means splitting a window will create a new parent window only if the
window has no parent window or the window shall become part of a
combination orthogonal to the one it is part of.
window-size means that splitting a window for displaying a buffer
makes a new parent window provided display-buffer is supposed to
explicitly set the window's size due to the presence of a
window-height or window-width entry in the alist used by
display-buffer. Otherwise, this value is handled like nil.
temp-buffer-resize means that splitting a window for displaying a
temporary buffer via with-temp-buffer-window makes a new parent
window only if temp-buffer-resize-mode(var)/temp-buffer-resize-mode(fun) is enabled. Otherwise,
this value is handled like nil.
temp-buffer means that splitting a window for displaying a temporary
buffer via with-temp-buffer-window always makes a new parent
window. Otherwise, this value is handled like nil.
display-buffer means that splitting a window for displaying a buffer
always makes a new parent window. Since temporary buffers are
displayed by the function display-buffer, this value is stronger
than temp-buffer. Splitting a window for other purpose makes a
new parent window only if needed.
t means that splitting a window always creates a new parent window. If
all splits behave this way, each frame's window tree is a binary
tree and every window but the frame's root window has exactly one
sibling.
The default value is window-size. Other values are reserved for
future use.
This variable was added, or its default value changed, in Emacs 26.1.
Probably introduced at or before Emacs version 24.1.
Source Code
// Defined in /usr/src/emacs/src/window.c
DEFVAR_LISP ("window-combination-limit", Vwindow_combination_limit,
doc: /* If non-nil, splitting a window makes a new parent window.
The following values are recognized:
nil means splitting a window will create a new parent window only if the
window has no parent window or the window shall become part of a
combination orthogonal to the one it is part of.
`window-size' means that splitting a window for displaying a buffer
makes a new parent window provided `display-buffer' is supposed to
explicitly set the window's size due to the presence of a
`window-height' or `window-width' entry in the alist used by
`display-buffer'. Otherwise, this value is handled like nil.
`temp-buffer-resize' means that splitting a window for displaying a
temporary buffer via `with-temp-buffer-window' makes a new parent
window only if `temp-buffer-resize-mode' is enabled. Otherwise,
this value is handled like nil.
`temp-buffer' means that splitting a window for displaying a temporary
buffer via `with-temp-buffer-window' always makes a new parent
window. Otherwise, this value is handled like nil.
`display-buffer' means that splitting a window for displaying a buffer
always makes a new parent window. Since temporary buffers are
displayed by the function `display-buffer', this value is stronger
than `temp-buffer'. Splitting a window for other purpose makes a
new parent window only if needed.
t means that splitting a window always creates a new parent window. If
all splits behave this way, each frame's window tree is a binary
tree and every window but the frame's root window has exactly one
sibling.
The default value is `window-size'. Other values are reserved for
future use. */);