window-at
tells you which window contains a
given horizontal and vertical position on a specified frame. Call it
with three arguments, like this:
(window-at x column frame)The function returns the window which contains that cursor position in the frame frame. If you omit frame, the selected frame is used.
coordinates-in-window-p
takes two arguments and
checks whether a particular frame position falls within a particular
window.
(coordinates-in-window-p coordinates window)The argument coordinates is a cons cell of this form:
(x . y)The two coordinates are measured in characters, and count from the top left corner of the screen or frame. The value of the function tells you what part of the window the position is in. The possible values are:
(relx . rely)
mode-line
vertical-split
nil
coordinates-in-window-p
, because it assumes you mean the frame
which window window is on.
minibuffer-window
now accepts a frame as argument
and returns the minibuffer window used for that frame. If you don't
specify a frame, the currently selected frame is used. The minibuffer
window may be on the frame in question, but if that frame has no
minibuffer of its own, it uses the minibuffer window of some other
frame, and minibuffer-window
returns that window.
window-live-p
to test whether a window is still alive (that
is, not deleted).
window-minibuffer-p
to determine whether a given window is a
minibuffer or not. It no longer works to do this by comparing the
window with the result of (minibuffer-window)
, because there can
be more than one minibuffer window at a time (if you have multiple
frames).
pop-up-frames
non-nil
, then the
functions to show something "in another window" actually create a new
frame for the new window. Thus, you will tend to have a frame for each
window, and you can easily have a frame for each buffer.
The value of the variable pop-up-frame-function
controls how new
frames are made. The value should be a function which takes no
arguments and returns a frame. The default value is a function which
creates a frame using parameters from pop-up-frame-alist
.
display-buffer
is the basic primitive for finding a way to show a
buffer on the screen. You can customize its behavior by storing a
function in the variable display-buffer-function
. If this
variable is non-nil
, then display-buffer
calls it to do
the work. Your function should accept two arguments, as follows:
nil
, means you should find another window to
display buffer in, even if it is already visible in the selected
window.
switch-to-buffer-other-window
and find-file-other-window
as well as for your own calls to display-buffer
.
delete-window
now gives all of the deleted window's screen space
to a single neighboring window. Likewise, enlarge-window
takes
space from only one neighboring window until that window disappears;
only then does it take from another window.
next-window
and previous-window
accept another argument,
all-frames.
These functions now take three optional arguments: window,
minibuf and all-frames. window is the window to start
from (nil
means use the selected window). minibuf says
whether to include the minibuffer in the windows to cycle through:
t
means yes, nil
means yes if it is active, and anything
else means no.
Normally, these functions cycle through all the windows in the
selected frame, plus the minibuffer used by the selected frame even if
it lies in some other frame.
If all-frames is t
, then these functions cycle through
all the windows in all the frames that currently exist. If
all-frames is neither t
nor nil
, then they limit
themselves strictly to the windows in the selected frame, excluding the
minibuffer in use if it lies in some other frame.
get-lru-window
and get-largest-window
now
take an optional argument all-frames. If it is non-nil
,
the functions consider all windows on all frames. Otherwise, they
consider just the windows on the selected frame.
Likewise, get-buffer-window
takes an optional second argument
all-frames.
other-window-scroll-buffer
specifies which buffer
scroll-other-window
should scroll.
set-window-dedicated-p
to set the dedication
flag of a window window to the value flag. If flag is
t
, this makes the window dedicated. If flag is
nil
, this makes the window non-dedicated.
Use window-dedicated-p
to examine the dedication flag of a
specified window.
walk-windows
cycles through all visible
windows, calling proc
once for each window with the window as
its sole argument.
The optional second argument minibuf says whether to include minibuffer
windows. A value of t
means count the minibuffer window even if
not active. A value of nil
means count it only if active. Any
other value means not to count the minibuffer even if it is active.
If the optional third argument all-frames is t
, that means
include all windows in all frames. If all-frames is nil
,
it means to cycle within the selected frame, but include the minibuffer
window (if minibuf says so) that that frame uses, even if it is on
another frame. If all-frames is neither nil
nor t
,
walk-windows
sticks strictly to the selected frame.
window-end
is a counterpart to window-start
:
it returns the buffer position of the end of the display in a given
window (or the selected window).
window-configuration-p
returns non-nil
when
given an object that is a window configuration (such as is returned by
current-window-configuration
).