unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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).