Subject: bug#65896: 30.0.50; folding text with text properties prevents background from extending past the newline

From: Ihor Radchenko <[email-masked]>
Date: Wed, 20 Sep 2023 12:50:08 +0000

Eli Zaretskii <[email-masked]> writes:

>> This might not sound too clever, but why don't we just make the extend
>> property be determined by the first character in the line rather than
>> the last character / newline character? 
>
> How can Emacs know, when it processes the first character on a line,
> whether the last character on that line will have the same face?
>
> You seem to assume that the Emacs display engine has "global" view of
> the line it is processing for display.  But that's not what happens:
> the Emacs display is basically a one-pass layout engine whose view of
> the text is a peephole whose size is a single character.  The display
> engine processes a character, makes all the decisions regarding its
> display and layout, then proceeds to the next one, and so on.  When it
> gets to the newline that ends a line, it makes the decision whether
> the last face it saw needs to be extended, and if so, extends it.

Are you sure? I am looking at `extend_face_to_end_of_line' and it looks
like there is nothing preventing it from accessing it->glyph_row->glyphs
array to look backwards into preceding glyphs.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>