Document new :extend face attribute in manuals.

Some stylistic corrections in src/xdisp.c and src/xfaces.c.
This commit is contained in:
Jimmy Aguilar Mena 2019-09-21 23:34:40 +02:00
parent 38ee12d5a2
commit 424e6f54e5
4 changed files with 33 additions and 7 deletions

View file

@ -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}

View file

@ -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

View file

@ -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. */

View file

@ -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;