GNU bug report logs -
#41062
27.0.91; Overlay with background face only applies to text (different behavior than in Emacs 26)
Previous Next
Reported by: David Engster <deng <at> randomsample.de>
Date: Sun, 3 May 2020 20:33:02 UTC
Severity: normal
Found in version 27.0.91
Done: David Engster <deng <at> randomsample.de>
Bug is archived. No further changes may be made.
Full log
Message #8 received at 41062 <at> debbugs.gnu.org (full text, mbox):
On Sun, 03 May 2020 22:32:31 +0200 David Engster <deng <at> randomsample.de> wrote:
> I noticed a pretty big change how overlays are handled that apply a
> face with a background color.
>
> Reproduce as follows:
>
> - emacs -Q
>
> - Put in the scratch buffer:
>
> (defface blue-background
> '((default :background "blue"))
> "blue background")
> (setq testov (make-overlay (point-min) (point-max) nil t t))
> (overlay-put testov 'face 'blue-background)
>
> - M-x eval-buffer
>
> In Emacs 26, you would see *everything* with a blue background until
> (point-max), meaning the blue background would span the whole width of
> the window, including the parts without text.
>
> In current Emacs 27.0.91, you see blue background only applied to the
> textual parts of the window. The parts without any text have the normal
> background color. I have attached screenshots for both cases.
>
> This is on GNU/Linux with Emacs26/27 both compiled from their latest
> branches with GTK+ 3.24.5 and plain './configure' (no cairo).
>
> I'm not sure if this is a bug or a deliberate change, but I couldn't
> find anything in NEWS mentioning this.
Write the defface like this:
(defface blue-background
'((default :background "blue" :extend t))
"blue background")
See NEWS in Emacs 27:
* Changes in Emacs 27.1
[...]
** New face attribute ':extend' to control face extension at EOL.
The new face attribute ':extend' controls whether to use the face for
displaying the empty space beyond end of line (EOL) till the edge of
the window. By default, this attribute is non-nil only for a small
number of faces, notably, 'region'; any other face that crosses end of
line will not affect the display of the empty space at EOL. This is
to make Emacs behave more like other GUI applications with respect to
displaying faces that cross line boundaries.
This attribute behaves specially when theme definitions are applied:
if the theme doesn't specify an explicit value of this attribute for a
face, the value from the original face definition is inherited.
Consequently, a theme generally shouldn't specify this attribute
unless it has a good reason to do so.
Steve Berman
This bug report was last modified 5 years and 21 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.