@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2003,
-@c 2004, 2005, 2006 Free Software Foundation, Inc.
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
+@c 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../info/windows
@node Windows, Frames, Buffers, Top
In each frame, at any time, one and only one window is designated as
@dfn{selected within the frame}. The frame's cursor appears in that
window, but the other windows have ``non-selected'' cursors, normally
-less visible. At any time, one frame is the selected frame; and the
-window selected within that frame is @dfn{the selected window}. The
-selected window's buffer is usually the current buffer (except when
-@code{set-buffer} has been used). @xref{Current Buffer}.
-
-@defvar cursor-in-non-selected-windows
-If this variable is @code{nil}, Emacs displays only one cursor,
-in the selected window. Other windows have no cursor at all.
-@end defvar
+less visible. (@pxref{Cursor Parameters}, for customization of this.)
+At any time, one frame is the selected frame; and the window selected
+within that frame is @dfn{the selected window}. The selected window's
+buffer is usually the current buffer (except when @code{set-buffer}
+has been used). @xref{Current Buffer}.
For practical purposes, a window exists only while it is displayed in
a frame. Once removed from the frame, the window is effectively deleted
@node Selecting Windows
@section Selecting Windows
-@cindex selecting windows
+@cindex selecting a window
When a window is selected, the buffer in the window becomes the current
buffer, and the cursor will appear in it.
the order is left to right, or top to bottom.
@defun next-window &optional window minibuf all-frames
-@cindex minibuffer window
+@cindex minibuffer window, and @code{next-window}
This function returns the window following @var{window} in the cyclic
ordering of windows. This is the window that @kbd{C-x o} would select
if typed when @var{window} is selected. If @var{window} is the only
@noindent
@xref{Positions}, for more details on buffer positions.
+@cindex cursor
As far as the user is concerned, point is where the cursor is, and
when the user switches to another buffer, the cursor jumps to the
position of point in that buffer.
@node Window Start
@section The Window Start Position
+@cindex window start position
Each window contains a marker used to keep track of a buffer position
that specifies where in the buffer display should start. This position
@node Vertical Scrolling
@section Vertical Fractional Scrolling
-@cindex Vertical Fractional Scrolling
+@cindex vertical fractional scrolling
@dfn{Vertical fractional scrolling} means shifting the image in the
window up or down by a specified multiple or fraction of a line.
@end example
@end defun
+@defun window-full-width-p &optional window
+This function returns non-@code{nil} if @var{window} is as wide as
+the frame that contains it; otherwise @code{nil}.
+If @var{window} is @code{nil}, the function uses the selected window.
+@end defun
+
@defun window-edges &optional window
This function returns a list of the edge coordinates of @var{window}.
If @var{window} is @code{nil}, the selected window is used.
@node Resizing Windows
@section Changing the Size of a Window
@cindex window resizing
+@cindex resize window
@cindex changing window size
@cindex window size, changing
@cindex saving window information
A @dfn{window configuration} records the entire layout of one
-frame---all windows, their sizes, which buffers they contain, what
-part of each buffer is displayed, and the values of point and the
-mark; also their fringes, margins, and scroll bar settings. It also
+frame---all windows, their sizes, which buffers they contain, how
+those buffers are scrolled, and their values of point and the mark;
+also their fringes, margins, and scroll bar settings. It also
includes the values of @code{window-min-height},
-@code{window-min-width} and @code{minibuffer-scroll-window}. An
-exception is made for point in the selected window for the current
-buffer; its value is not saved in the window configuration.
+@code{window-min-width} and @code{minibuffer-scroll-window}. As a
+special exception, the window configuration does not record the value
+of point in the selected window for the current buffer.
You can bring back an entire previous layout by restoring a window
configuration previously saved. If you want to record all frames
@node Window Hooks
@section Hooks for Window Scrolling and Changes
+@cindex hooks for window operations
This section describes how a Lisp program can take action whenever a
window displays a different part of its buffer or a different buffer.