Date: Tue, 17 Dec 2019 15:13:45 +0100
From: Ergus <address@hidden>
Cc: address@hidden
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -21596,13 +21596,17 @@ extend_face_to_end_of_line (struct it *it)
if (FRAME_WINDOW_P (f)
&& MATRIX_ROW_DISPLAYS_TEXT_P (it->glyph_row)
- && face->box == FACE_NO_BOX
&& FACE_COLOR_TO_PIXEL (face->background, f) == FRAME_BACKGROUND_PIXEL
(f)
#ifdef HAVE_WINDOW_SYSTEM
&& !face->stipple
#endif
&& !it->glyph_row->reversed_p
- && !Vdisplay_fill_column_indicator)
+ && !Vdisplay_fill_column_indicator
+ && (NILP (face->lface[LFACE_EXTEND_INDEX])
+ ||(face->box == FACE_NO_BOX
+ && face->underline == FACE_NO_UNDERLINE
+ && face->overline_p == false
+ && face->strike_through_p == false)))
return;
I don't think I understand the test for the :extend attribute being
non-nil. Can you explain why you added it? In general, faces that we
treat as "base face" when we start face merging don't need to have the
:extend attribute set (see, for example, the tool-bar face), but we
still want to apply them to the space past EOL. Am I missing
something? Did you bump into some scenario where this attribute
caused some regression or bad results?
Thanks.