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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 23 Sep 2023 15:38:03 +0300

> From: Ihor Radchenko <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> Date: Sat, 23 Sep 2023 11:19:32 +0000
> 
> 1. emacs -Q
> 2. M-x org-mode
> 3. M-: (set-face-background 'org-block-end-line "lightblue")
> 4. Insert
> * Heading
> #+begin_src emacs-lisp
> 1
> #+end_src
> * Another heading
> 5. S-<TAB>
> 6. Observe * Heading...<blue background>

It's because the invisible text does not include the newline of the
#+end_src line, and that newline has the face you don't want to see.

If we ignore the face of the newline itself, we will change the
behavior when the last glyph before the newline has a different face.
The most notable use case is:

  . C-e
  . C-SPC
  . C-f

This is expected to paint with the region face the part between the
last glyph of the current line and the first glyph of the next line,
but with your proposal will not.  IOW, the region face will
effectively not be extended in this case.

Why cannot Org include in the invisible text the newline of the last
line that is being hidden?  That is, in the above scenario, make the
invisible text begin with the first character of "#+begin_src" and end
after the newline following "#+end_src".