Document new :extend face attribute in manuals.
Some stylistic corrections in src/xdisp.c and src/xfaces.c.
This commit is contained in:
parent
38ee12d5a2
commit
424e6f54e5
4 changed files with 33 additions and 7 deletions
|
@ -23,6 +23,11 @@ When the mark is active, we say also that the region is active; Emacs
|
|||
indicates its extent by highlighting the text within it, using the
|
||||
@code{region} face (@pxref{Face Customization}).
|
||||
|
||||
This is one of the few faces that has the @code{:extend t} attribute
|
||||
by default, which implies that the same face is used to highlight the
|
||||
text and space between end of line and the window border. To
|
||||
highlight only the text you could set this attribute to @code{nil}.
|
||||
|
||||
@cindex deactivating the mark
|
||||
After certain non-motion commands, including any command that
|
||||
changes the text in the buffer, Emacs automatically @dfn{deactivates}
|
||||
|
|
|
@ -2482,6 +2482,17 @@ faces (@pxref{Displaying Faces}). If the face to inherit from is
|
|||
never merges @code{:inherit} attributes. If a list of faces is used,
|
||||
attributes from faces earlier in the list override those from later
|
||||
faces.
|
||||
|
||||
@item :extend
|
||||
Whether or not this face will be extended until the end of the window.
|
||||
The value should be @code{t} to extend until end of the window using
|
||||
this face or @code{nil} fill the space between the end of the line and
|
||||
the end of the window with the default face. When a face is conformed
|
||||
by merging multiple other faces; only those with @code{:extend t} will
|
||||
be merged to conform a new face to extend until end of window. By
|
||||
default only @code{region} and @code{hl-line} have this attribute set
|
||||
to @code{t}.
|
||||
|
||||
@end table
|
||||
|
||||
@defun font-family-list &optional frame
|
||||
|
@ -2840,6 +2851,11 @@ This sets the @code{:inverse-video} attribute of @var{face} to
|
|||
|
||||
@deffn Command invert-face face &optional frame
|
||||
This swaps the foreground and background colors of face @var{face}.
|
||||
@end deffn
|
||||
|
||||
@deffn Command set-face-extend face extend &optional frame
|
||||
This sets the @code{:extend} attribute of @var{face} to
|
||||
@var{extend}.
|
||||
@end deffn
|
||||
|
||||
The following functions examine the attributes of a face. They
|
||||
|
@ -2900,6 +2916,12 @@ This function returns non-@code{nil} if face @var{face} specifies
|
|||
a non-@code{nil} @code{:inverse-video} attribute.
|
||||
@end defun
|
||||
|
||||
@defun face-extend-p face &optional frame
|
||||
This function returns non-@code{nil} if face @var{face} specifies
|
||||
a non-@code{nil} @code{:extend} attribute.
|
||||
@end defun
|
||||
|
||||
|
||||
@node Displaying Faces
|
||||
@subsection Displaying Faces
|
||||
@cindex displaying faces
|
||||
|
|
|
@ -21400,7 +21400,7 @@ append_space_for_newline (struct it *it, bool default_face_p)
|
|||
const int local_default_face_id =
|
||||
lookup_basic_face (it->w, it->f, DEFAULT_FACE_ID);
|
||||
struct face* default_face =
|
||||
FACE_FROM_ID (it->f, local_default_face_id);
|
||||
FACE_FROM_ID_OR_NULL (it->f, local_default_face_id);
|
||||
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
if (FRAME_WINDOW_P (it->f))
|
||||
|
@ -21534,7 +21534,7 @@ append_space_for_newline (struct it *it, bool default_face_p)
|
|||
g->ascent = it->max_ascent;
|
||||
g->descent = it->max_descent;
|
||||
}
|
||||
#endif // HAVE_WINDOW_SYSTEM
|
||||
#endif /* HAVE_WINDOW_SYSTEM */
|
||||
it->override_ascent = -1;
|
||||
it->constrain_row_ascent_descent_p = false;
|
||||
it->current_x = saved_x;
|
||||
|
@ -21722,8 +21722,6 @@ extend_face_to_end_of_line (struct it *it)
|
|||
}
|
||||
}
|
||||
|
||||
/* Restore the face after the indicator was generated. */
|
||||
|
||||
/* If there is space after the indicator generate an
|
||||
extra empty glyph to restore the face. Issue was
|
||||
observed in X systems. */
|
||||
|
|
|
@ -2282,7 +2282,7 @@ filter_face_ref (Lisp_Object face_ref,
|
|||
of ERR_MSGS). Use NAMED_MERGE_POINTS to detect loops in face
|
||||
inheritance or list structure; it may be 0 for most callers.
|
||||
|
||||
attr_filter is the index of a parameter that conditions the merging
|
||||
ATTR_FILTER is the index of a parameter that conditions the merging
|
||||
for named faces (case 1) to only the face_ref where
|
||||
lface[merge_face_ref] is non-nil. To merge unconditionally set this
|
||||
value to 0.
|
||||
|
@ -6043,7 +6043,7 @@ compute_char_face (struct frame *f, int ch, Lisp_Object prop)
|
|||
which a different face is needed, as far as text properties and
|
||||
overlays are concerned. W is a window displaying current_buffer.
|
||||
|
||||
attr_filter is passed merge_face_ref.
|
||||
ATTR_FILTER is passed merge_face_ref.
|
||||
|
||||
REGION_BEG, REGION_END delimit the region, so it can be
|
||||
highlighted.
|
||||
|
@ -6126,7 +6126,8 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
|
|||
}
|
||||
|
||||
/* Optimize common cases where we can use the default face. */
|
||||
if (noverlays == 0 && NILP (prop))
|
||||
if (noverlays == 0
|
||||
&& NILP (prop))
|
||||
{
|
||||
SAFE_FREE ();
|
||||
return default_face->id;
|
||||
|
|
Loading…
Add table
Reference in a new issue