From: Martin Rudalics Date: Thu, 25 Dec 2014 09:59:21 +0000 (+0100) Subject: Resync @menu order with @node order. X-Git-Tag: emacs-25.0.90~2634^2~10 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=437854dc5d9a6146b7095392e750112819b7e8a6;p=emacs.git Resync @menu order with @node order. --- diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index c2e5ea08e68..b74719cd029 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,7 @@ +2014-12-25 Martin Rudalics + + * windows.texi (Windows): Resync @menu order with @node order. + 2014-12-25 Glenn Morris * windows.texi (Windows): Sync @menu order with @node order. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 20f5d6e747f..7c8d0b084b5 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -16,8 +16,8 @@ is displayed in windows. * Windows and Frames:: Relating windows to the frame they appear on. * Window Sizes:: Accessing a window's size. * Resizing Windows:: Changing the sizes of windows. -* Splitting Windows:: Creating a new window. * Preserving Window Sizes:: Preserving the size of windows. +* Splitting Windows:: Creating a new window. * Deleting Windows:: Removing a window from its frame. * Recombining Windows:: Preserving the frame layout when splitting and deleting windows. @@ -907,6 +907,98 @@ window. @end deffn +@node Preserving Window Sizes +@section Preserving Window Sizes +@cindex preserving window sizes + +A window can get resized explicitly by using one of the functions from +the preceding section or implicitly, for example, when resizing an +adjacent window, when splitting or deleting a window (@pxref{Splitting +Windows}, @pxref{Deleting Windows}) or when resizing the window's frame +(@pxref{Size and Position}). + + It is possible to avoid implicit resizing of a specific window when +there are one or more other resizable windows on the same frame. For +this purpose, Emacs must be advised to @dfn{preserve} the size of that +window. There are two basic ways to do that. + +@defvar window-size-fixed +If this buffer-local variable is non-@code{nil}, the size of any window +displaying the buffer cannot normally be changed. Deleting a window or +changing the frame's size may still change the window's size, if there +is no choice. + +If the value is @code{height}, then only the window's height is fixed; +if the value is @code{width}, then only the window's width is fixed. +Any other non-@code{nil} value fixes both the width and the height. + +If this variable is @code{nil}, this does not necessarily mean that any +window showing the buffer can be resized in the desired direction. To +determine that, use the function @code{window-resizable}. +@xref{Resizing Windows}. +@end defvar + +Often @code{window-size-fixed} is overly aggressive because it inhibits +any attempt to explicitly resize or split an affected window as well. +This may even happen after the window has been resized implicitly, for +example, when deleting an adjacent window or resizing the window's +frame. The following function tries hard to never disallow resizing +such a window explicitly: + +@defun window-preserve-size &optional window horizontal preserve +This function (un-)marks the height of window @var{window} as preserved +for future resize operations. @var{window} must be a live window and +defaults to the selected one. If the optional argument @var{horizontal} +is non-@code{nil}, it (un-)marks the width of @var{window} as preserved. + +If the optional argument @var{preserve} is @code{t}, this means to +preserve the current height/width of @var{window}'s body. The +height/width of @var{window} will change only if Emacs has no better +choice. Resizing a window whose height/width is preserved by this +function never throws an error. + +If @var{preserve} is @code{nil}, this means to stop preserving the +height/width of @var{window}, lifting any respective restraint induced +by a previous call of this function for @var{window}. Calling +@code{enlarge-window}, @code{shrink-window} or +@code{fit-window-to-buffer} with @var{window} as argument may also +remove the respective restraint. +@end defun + +@code{window-preserve-size} is currently invoked by the following +functions: + +@table @code +@item fit-window-to-buffer +If the optional argument @var{preserve-size} of that function +(@pxref{Resizing Windows}) is non-@code{nil}, the size established by +that function is preserved. + +@item display-buffer +If the @var{alist} argument of that function (@pxref{Choosing Window}) +contains a @code{preserve-size} entry, the size of the window produced +by that function is preserved. +@end table + + @code{window-preserve-size} installs a window parameter (@pxref{Window +Parameters}) called @code{preserved-size} which is consulted by the +window resizing functions. This parameter will not prevent resizing the +window when the window shows another buffer than the one when +@code{window-preserve-size} was invoked or if its size has changed since +then. + +The following function can be used to check whether the height of a +particular window is preserved: + +@defun window-preserved-size &optional window horizontal +This function returns the preserved height of window @var{window} in +pixels. @var{window} must be a live window and defaults to the selected +one. If the optional argument @var{horizontal} is non-@code{nil}, it +returns the preserved width of @var{window}. It returns @code{nil} if +the size of @var{window} is not preserved. +@end defun + + @node Splitting Windows @section Splitting Windows @cindex splitting windows @@ -1068,98 +1160,6 @@ function. @end defopt -@node Preserving Window Sizes -@section Preserving Window Sizes -@cindex preserving window sizes - -A window can get resized explicitly by using one of the functions from -the preceding section or implicitly, for example, when resizing an -adjacent window, when splitting or deleting a window (@pxref{Splitting -Windows}, @pxref{Deleting Windows}) or when resizing the window's frame -(@pxref{Size and Position}). - - It is possible to avoid implicit resizing of a specific window when -there are one or more other resizable windows on the same frame. For -this purpose, Emacs must be advised to @dfn{preserve} the size of that -window. There are two basic ways to do that. - -@defvar window-size-fixed -If this buffer-local variable is non-@code{nil}, the size of any window -displaying the buffer cannot normally be changed. Deleting a window or -changing the frame's size may still change the window's size, if there -is no choice. - -If the value is @code{height}, then only the window's height is fixed; -if the value is @code{width}, then only the window's width is fixed. -Any other non-@code{nil} value fixes both the width and the height. - -If this variable is @code{nil}, this does not necessarily mean that any -window showing the buffer can be resized in the desired direction. To -determine that, use the function @code{window-resizable}. -@xref{Resizing Windows}. -@end defvar - -Often @code{window-size-fixed} is overly aggressive because it inhibits -any attempt to explicitly resize or split an affected window as well. -This may even happen after the window has been resized implicitly, for -example, when deleting an adjacent window or resizing the window's -frame. The following function tries hard to never disallow resizing -such a window explicitly: - -@defun window-preserve-size &optional window horizontal preserve -This function (un-)marks the height of window @var{window} as preserved -for future resize operations. @var{window} must be a live window and -defaults to the selected one. If the optional argument @var{horizontal} -is non-@code{nil}, it (un-)marks the width of @var{window} as preserved. - -If the optional argument @var{preserve} is @code{t}, this means to -preserve the current height/width of @var{window}'s body. The -height/width of @var{window} will change only if Emacs has no better -choice. Resizing a window whose height/width is preserved by this -function never throws an error. - -If @var{preserve} is @code{nil}, this means to stop preserving the -height/width of @var{window}, lifting any respective restraint induced -by a previous call of this function for @var{window}. Calling -@code{enlarge-window}, @code{shrink-window} or -@code{fit-window-to-buffer} with @var{window} as argument may also -remove the respective restraint. -@end defun - -@code{window-preserve-size} is currently invoked by the following -functions: - -@table @code -@item fit-window-to-buffer -If the optional argument @var{preserve-size} of that function -(@pxref{Resizing Windows}) is non-@code{nil}, the size established by -that function is preserved. - -@item display-buffer -If the @var{alist} argument of that function (@pxref{Choosing Window}) -contains a @code{preserve-size} entry, the size of the window produced -by that function is preserved. -@end table - - @code{window-preserve-size} installs a window parameter (@pxref{Window -Parameters}) called @code{preserved-size} which is consulted by the -window resizing functions. This parameter will not prevent resizing the -window when the window shows another buffer than the one when -@code{window-preserve-size} was invoked or if its size has changed since -then. - -The following function can be used to check whether the height of a -particular window is preserved: - -@defun window-preserved-size &optional window horizontal -This function returns the preserved height of window @var{window} in -pixels. @var{window} must be a live window and defaults to the selected -one. If the optional argument @var{horizontal} is non-@code{nil}, it -returns the preserved width of @var{window}. It returns @code{nil} if -the size of @var{window} is not preserved. -@end defun - - @node Deleting Windows @section Deleting Windows @cindex deleting windows