Next: Process Internals, Previous: Buffer Internals, Up: Object Internals
The fields of a window (for a complete list, see the definition of
struct window in window.h) include:
framemini_pnil if this window is a minibuffer window.
parentParent windows do not display buffers, and play little role in display
except to shape their child windows. Emacs Lisp programs usually have
no access to the parent windows; they operate on the windows at the
leaves of the tree, which actually display buffers.
hchildvchildhchild is used if the window is subdivided
horizontally by child windows, and vchild if it is subdivided
vertically. In a live window, only one of hchild, vchild,
and buffer (q.v.) is non-nil.
nextprevnext is
nil if the window is the right-most or bottom-most in its group;
prev is nil if it is the left-most or top-most in its
group.
left_coltop_linetotal_colstotal_linesbufferstartpointmforce_startnil, it says that the window has been
scrolled explicitly by the Lisp program. This affects what the next
redisplay does if point is off the screen: instead of scrolling the
window to show the text around point, it moves point to a location that
is on the screen.
frozen_window_start_pstart of this window should not be changed, even if point
gets invisible.
start_at_line_begnil means current value of start was the beginning of a line
when it was chosen.
use_timeget-lru-window uses this field.
sequence_numberlast_modifiedmodiff field of the window's buffer, as of the last time
a redisplay completed in this window.
last_overlay_modifiedoverlay_modiff field of the window's buffer, as of the last
time a redisplay completed in this window.
last_pointlast_had_starnil value means the window's buffer was “modified” when the
window was last updated.
vertical_scroll_barleft_margin_colsright_margin_colsnil means no margin.
left_fringe_widthright_fringe_widthnil or t means use the values of the frame.
fringes_outside_marginsnil value means the fringes outside the display margins;
othersize they are between the margin and the text.
window_end_posz minus the buffer position of the last glyph
in the current matrix of the window. The value is only valid if
window_end_valid is not nil.
window_end_byteposwindow_end_pos.
window_end_vposwindow_end_pos.
window_end_validnil value if window_end_pos is truly
valid. This is nil if nontrivial redisplay is pre-empted, since in that
case the display that window_end_pos was computed for did not get
onto the screen.
cursorlast_cursorcursor as of the last redisplay that finished.
phys_cursorphys_cursor_typephys_cursor_heightphys_cursor_widthphys_cursor_on_pcursor_off_plast_cursor_off_pcursor_off_p as of the time of
the last redisplay.
must_be_updated_phscrollvscrolldedicatednil if this window is dedicated to its buffer.
display_tablenil if none is specified for it.
update_mode_linenil means this window's mode line needs to be updated.
base_line_numbernil.
This is used for displaying the line number of point in the mode line.
base_line_posnil meaning none is known. If it is a buffer, don't display
the line number as long as the window shows that buffer.
column_number_displayednil
if column numbers are not being displayed.
current_matrixdesired_matrix