emacs-31 48a481ac8d8: ; Improve documentation of window-rotation commands
Eli Zaretskii <[email protected]> Tue, 14 Jul 2026 07:20:53 -0400 (EDT)
| Newsgroups | gmane.emacs.diffs |
|---|---|
| Message-ID | <[email protected]> |
branch: emacs-31 commit 48a481ac8d8d0c2436ee343b582755d51c608374 Author: Eli Zaretskii <[email protected]> Commit: Eli Zaretskii <[email protected]> ; Improve documentation of window-rotation commands * lisp/window-x.el (window-layout-rotate-clockwise) (window-layout-flip-leftright, window-layout-flip-topdown): Doc fixes. (rotate-windows-change-selected): Add :version. * doc/lispref/windows.texi (Recombining Windows): Fix wording, markup and indexing. * etc/NEWS: Add key bindings for window-rotation commands and document 'rotate-windows-change-selected'. --- doc/lispref/windows.texi | 19 ++++++++++--------- etc/NEWS | 25 +++++++++++++++++-------- lisp/window-x.el | 7 ++++--- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 137a112acf6..ddc8524ddb6 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2028,8 +2028,8 @@ affected by a non-@code{nil} value of @code{window-combination-limit}. If you plan to use a sequence of @code{split-window} calls to produce a specific, predefined layout of windows on a frame, bind this variable -temporarily to nil. @code{window-state-put} (@pxref{Window -Configurations}) and the functions to change window layouts +temporarily to @code{nil}. @code{window-state-put} (@pxref{Window +Configurations}) and the functions which change window layouts (@pxref{Changing Window Layouts}) do that in order to restore a previous or systematically changed layout of a frame. @end defopt @@ -2309,9 +2309,9 @@ below, we shall always assume that the windows displayed constitute their frame's main window and the @var{window} argument is @code{nil} unless stated otherwise. +@cindex rotate window layout The first two commands rotate an entire window layout either clockwise or counterclockwise. -@cindex rotate window layout @deffn Command window-layout-rotate-clockwise &optional window This command rotates the window layout clockwise by 90 degrees. Imagine @@ -2351,9 +2351,10 @@ layout in the opposite direction as demonstrated in the example below. @end smallexample @end deffn -The next two commands @sc{flip} the window layout---rotate it around an -imaginary horizontal or vertical axis. @cindex flip window layout +The next two commands @sc{flip} the window layout---rotate it around an +imaginary horizontal or vertical axis. If the number of windows to be +flipped is odd, the window in the middle remains in its original place. @deffn Command window-layout-flip-topdown &optional window This command flips windows such that windows on the bottom become @@ -2413,17 +2414,17 @@ becomes a vertical split and vice versa. @end smallexample @end deffn -The final two commands can be used to rotate windows within the existing +@cindex rotating windows +The final two commands can be used to @dfn{rotate} windows within the existing layout. They are like the commands that rotate the layout but leave the underlying structure of the layout unchanged. What actually changes are the positions of windows within the existing layout. This happens in a way that the space formerly occupied by any window will be occupied by -the window preceding (following if @var{reverse} is non-nil) it in the -cyclic ordering of windows (@pxref{Cyclic Window Ordering}) on +the window preceding (following if @var{reverse} is non-@code{nil}) it +in the cyclic ordering of windows (@pxref{Cyclic Window Ordering}) on @var{window}'s frame. These commands may signal an error if windows chosen to rotate are dedicated to their buffers, atomic or of fixed size. -@cindex rotating windows @deffn Command rotate-windows &optional window reverse This command rotates @var{window}'c child windows in cyclic ordering. diff --git a/etc/NEWS b/etc/NEWS index 9dcb38f05bb..b918bfc2306 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -358,14 +358,23 @@ increments as with Emacs 24 through Emacs 30 you now have to set +++ *** New commands to modify window layouts of frames. -'window-layout-rotate-clockwise' and its counterpart -'window-layout-rotate-anticlockwise' rotate an entire window layout. -'window-layout-flip-topdown' and 'window-layout-flip-leftright' flip the -window layout vertically and horizontally. -'window-layout-transpose' reorganizes windows such that every horizontal -split becomes a vertical split and vice versa. -'rotate-windows' and its counterpart 'rotate-windows-back' rotate -windows in cylic ordering. +'window-layout-rotate-clockwise' ('C-x w r <RIGHT>') and its counterpart +'window-layout-rotate-anticlockwise' ('C-x v r <LEFT>') rotate an entire +window layout. +'window-layout-flip-topdown' ('C-x w r <DOWN>') and +'window-layout-flip-leftright' ('C-x w r <LEFT>') flip the window layout +vertically and horizontally. +'window-layout-transpose' ('C-x w t') reorganizes windows such that +every horizontal split becomes a vertical split and vice versa. +'rotate-windows' ('C-x w o <RIGHT>') and its counterpart +'rotate-windows-back' ('C-x w o <LEFT>') rotate windows in cyclic +ordering. + +*** New user option 'rotate-windows-change-selected'. +This controls whether 'rotate-windows' and 'rotate-windows-back' change +the selected window. If nil, the selected window does not change. +The default is t, which means the new selected window will be the one +that winds up at the location of the previously-selected window. +++ *** Windmove commands now move to skipped windows if invoked twice in a row. diff --git a/lisp/window-x.el b/lisp/window-x.el index 82caabc3631..dbaacf73afe 100644 --- a/lisp/window-x.el +++ b/lisp/window-x.el @@ -69,7 +69,7 @@ where HEIGHT and WIDTH are the normal height and width of the window. ;;;###autoload (defun window-layout-rotate-clockwise (&optional window) - "Clockwise rotate layout of WINDOW's child windows. + "Rotate layout of WINDOW's child windows clockwise by 90 degrees. WINDOW must be a parent window and defaults to the main window of the selected frame. Interactively, with a prefix argument, rotate clockwise the layout of the child windows of the selected window's parent. Signal @@ -99,7 +99,7 @@ layout, consider using `rotate-windows-back' instead." ;;;###autoload (defun window-layout-flip-leftright (&optional window) - "Horizontally flip WINDOW's child windows. + "Flip WINDOW's child windows horizontally. WINDOW must be a parent window and defaults to the main window of the selected frame. Interactively, with a prefix argument, flip horizontally the layout of the child windows of the selected window's @@ -112,7 +112,7 @@ window on the right becomes a child window on the left and vice-versa." ;;;###autoload (defun window-layout-flip-topdown (&optional window) - "Vertically flip WINDOW's child windows. + "Flip WINDOW's child windows vertically. WINDOW must be a parent window and defaults to the main window of the selected frame. Interactively, with a prefix argument, flip vertically the layout of the child windows of the selected window's parent. Signal @@ -143,6 +143,7 @@ a frame's selected window. Otherwise, the new selected window will be the window that appears at the location of the previously selected window." :type 'boolean + :version "31.1" :group 'windows) ;;;###autoload