* bug#59527: 29.0.50; Face issues in show-paren context overlay
@ 2022-11-24 0:22 Gabriel
2022-11-24 7:10 ` Eli Zaretskii
0 siblings, 1 reply; 5+ messages in thread
From: Gabriel @ 2022-11-24 0:22 UTC (permalink / raw)
To: 59527
[-- Attachment #1: Type: text/plain, Size: 1567 bytes --]
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.
[-- Attachment #2: wrong font-lock.png --]
[-- Type: image/png, Size: 102835 bytes --]
[-- Attachment #3: correct font-lock.png --]
[-- Type: image/png, Size: 103577 bytes --]
[-- Attachment #4: whitespace-mode + wrong font-lock.png --]
[-- Type: image/png, Size: 116445 bytes --]
[-- Attachment #5: whitespace-mode + correct font-lock.png --]
[-- Type: image/png, Size: 118041 bytes --]
[-- Attachment #6: Type: text/plain, Size: 13 bytes --]
---
Gabriel
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59527: 29.0.50; Face issues in show-paren context overlay
2022-11-24 0:22 bug#59527: 29.0.50; Face issues in show-paren context overlay Gabriel
@ 2022-11-24 7:10 ` Eli Zaretskii
2022-11-24 7:18 ` Tassilo Horn
2022-11-24 9:55 ` Tassilo Horn
0 siblings, 2 replies; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-24 7:10 UTC (permalink / raw)
To: Gabriel, Tassilo Horn; +Cc: 59527
> From: Gabriel <gabriel376@hotmail.com>
> Date: Wed, 23 Nov 2022 21:22:02 -0300
>
> 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.
CC'ing Tassilo, who implemented this feature.
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59527: 29.0.50; Face issues in show-paren context overlay
2022-11-24 7:10 ` Eli Zaretskii
@ 2022-11-24 7:18 ` Tassilo Horn
2022-11-24 9:55 ` Tassilo Horn
1 sibling, 0 replies; 5+ messages in thread
From: Tassilo Horn @ 2022-11-24 7:18 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Gabriel, 59527
Eli Zaretskii <eliz@gnu.org> writes:
Hi Gabriel & Eli,
>> 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.
>
> CC'ing Tassilo, who implemented this feature.
Thanks for the very detailed bug report. That's very appreciated. I
will have a look ASAP.
Bye,
Tassilo
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59527: 29.0.50; Face issues in show-paren context overlay
2022-11-24 7:10 ` Eli Zaretskii
2022-11-24 7:18 ` Tassilo Horn
@ 2022-11-24 9:55 ` Tassilo Horn
2022-11-24 11:21 ` Gabriel
1 sibling, 1 reply; 5+ messages in thread
From: Tassilo Horn @ 2022-11-24 9:55 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Gabriel, 59527
Eli Zaretskii <eliz@gnu.org> writes:
Hi Gabriel & Eli,
>> (progn
>> ;; enable overlay context in show-paren
>> (setopt show-paren-context-when-offscreen 'overlay)
Note that the issue was also present with t (minibuffer message) or the
child-frame version.
The issue is hopefully fixed with 005efce764. Please report back.
>> Problem 1: the overlay context does not have font-lock, since
>> font-lock was not applied to the previous area that contains the
>> context.
I now ensure the region is font-locked before taking the
buffer-substring(s).
>> 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 now set the overlay priority to (the very high) show-paren-priority
which seems to do the trick.
Bye,
Tassilo
^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#59527: 29.0.50; Face issues in show-paren context overlay
2022-11-24 9:55 ` Tassilo Horn
@ 2022-11-24 11:21 ` Gabriel
0 siblings, 0 replies; 5+ messages in thread
From: Gabriel @ 2022-11-24 11:21 UTC (permalink / raw)
To: 59527
[-- Attachment #1: Type: text/plain, Size: 1182 bytes --]
Hi Tassilo,
Thank you for the quick fix.
>>> Problem 1: the overlay context does not have font-lock, since
>>> font-lock was not applied to the previous area that contains the
>>> context.
>
> I now ensure the region is font-locked before taking the
> buffer-substring(s).
>
I confirm that problem #1 is fixed.
>>> 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 now set the overlay priority to (the very high) show-paren-priority
> which seems to do the trick.
I can still reproduce the problem #2, where the overlay context use the
same face of the top-left line. I suspect the issue is related to the
overlay face, not with overlay priority (but we can keep your fix that
set the overlay priority).
A simpler recipe to reproduce the issue is to make sure the first
character of the top-left line is a comment, so the overlay context will
be displayed in that face (font-lock-comment-face). See the attached
images, where I put a comment ("/* EXAMPLE COMMENT */") in the top-left
line and the context overlay was displayed in that face.
[-- Attachment #2: comment.png --]
[-- Type: image/png, Size: 128324 bytes --]
[-- Attachment #3: wrong face.png --]
[-- Type: image/png, Size: 128719 bytes --]
[-- Attachment #4: Type: text/plain, Size: 13 bytes --]
---
Gabriel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-11-24 11:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-24 0:22 bug#59527: 29.0.50; Face issues in show-paren context overlay Gabriel
2022-11-24 7:10 ` Eli Zaretskii
2022-11-24 7:18 ` Tassilo Horn
2022-11-24 9:55 ` Tassilo Horn
2022-11-24 11:21 ` Gabriel
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).