Next: , Previous: Cyclic Window Ordering, Up: Windows


28.6 Buffers and Windows

This section describes low-level functions to examine windows or to display buffers in windows in a precisely controlled fashion. See Displaying Buffers, for related functions that find a window to use and specify a buffer for it. The functions described there are easier to use than these, but they employ heuristics in choosing or creating a window; use these functions when you need complete control.

— Function: set-window-buffer window buffer-or-name

This function makes window display buffer-or-name as its contents. It returns nil. This is the fundamental primitive for changing which buffer is displayed in a window, and all ways of doing that call this function.

          (set-window-buffer (selected-window) "foo")
               => nil
     
— Function: window-buffer &optional window

This function returns the buffer that window is displaying. If window is omitted, this function returns the buffer for the selected window.

          (window-buffer)
               => #<buffer windows.texi>
     
— Function: get-buffer-window buffer-or-name &optional all-frames

This function returns a window currently displaying buffer-or-name, or nil if there is none. If there are several such windows, then the function returns the first one in the cyclic ordering of windows, starting from the selected window. See Cyclic Window Ordering.

The argument all-frames controls which windows to consider.

— Function: get-buffer-window-list buffer-or-name &optional minibuf all-frames

This function returns a list of all the windows currently displaying buffer-or-name.

The two optional arguments work like the optional arguments of next-window (see Cyclic Window Ordering); they are not like the single optional argument of get-buffer-window. Perhaps we should change get-buffer-window in the future to make it compatible with the other functions.

The argument all-frames controls which windows to consider.

— Variable: buffer-display-time

This variable records the time at which a buffer was last made visible in a window. It is always local in each buffer; each time set-window-buffer is called, it sets this variable to (current-time) in the specified buffer (see Time of Day). When a buffer is first created, buffer-display-time starts out with the value nil.