Subject: 29.0.50; Face issues in show-paren context overlay

From: Gabriel <[email-masked]>
Date: Wed, 23 Nov 2022 21:22:02 -0300

Description:

The context overlay (from show-paren) has some face issues.  First, in
case font-lock was not applied to a previous region of the buffer, the
overlay will not display the context with font-lock.  Second, the
overlay will be displayed with the same background as the top-left line
of the window instead of the original context background.

Steps:

1) emacs -Q (master "b42cd524b46a4f29ef13e9d03be9d3df917f9aa3")

2) eval:

(progn
    ;; enable overlay context in show-paren
    (setopt show-paren-context-when-offscreen 'overlay)

    ;; just to have a different background to reproduce issue #2
    (add-hook 'c-mode-hook #'whitespace-mode))

3) Open file src/xdisp.c from emacs source tree: C-x C-f emacs/src/xdisp.c

4) Go to line 13418: M-g M-g 13418

5) Go to next char (the context overlay will be displayed): C-f

Problem 1: the overlay context does not have font-lock, since font-lock
was not applied to the previous area that contains the context.  As a
workaround, execute C-M b (to navigate to context and force font-lock
update) and then C-M-f to navigate back and display again the overlay
context (with correct font-lock, this time).  I expect the context
overlay to always be displayed with an updated font-lock.

Problem 2: the overlay context will be displayed with the same
background color as the top-left line of the window (yellow, in this
case, because of whitespace-mode).  I expect the context overlay to
always show the correct background, regardless of the face in the
top-left line.

See attached images for more information.

---
Gabriel