From: Eli Zaretskii <eliz@gnu.org>
To: Daniel Colascione <dancol@dancol.org>
Cc: 75291@debbugs.gnu.org, mina86@mina86.com
Subject: bug#75291: Redisplay not updating fringe when face filter changes
Date: Sat, 04 Jan 2025 09:12:05 +0200 [thread overview]
Message-ID: <86pll3f3y2.fsf@gnu.org> (raw)
In-Reply-To: <87msg762f2.fsf@dancol.org> (message from Daniel Colascione on Fri, 03 Jan 2025 15:57:37 -0500)
> From: Daniel Colascione <dancol@dancol.org>
> Cc: 75291@debbugs.gnu.org, mina86@mina86.com
> Date: Fri, 03 Jan 2025 15:57:37 -0500
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> > Doesn't that only support face remapping with :filtered attribute?
> >> > What about the more general case where the fringe face is remapped in
> >> > a way that's independent of the windows?
> >>
> >> That seems to work already. It's only in the fringe that I see problems
> >> --- it just doesn't seem worth it to limit the redraw to the fringe.
> >
> > Sorry, I don't understand. I _was_ talking about the fringe face.
>
> I misread your question. To answer it: what are the circumstances in
> which the effective fringe face can change behind our backs?
For example, face remapping via face-remapping-alist.
> Any change to a face attribute proper will cause a redraw anyway.
Changes in face attributes set the frame's redisplay flag, but that
just tells the display engine to disable some radical optimizations,
like considering only the selected window and only the line where the
cursor is. AFAIU, this will not necessarily cause all the fringes of
all the frame's windows to be redrawn, because we only redraw the
fringes of the glyph rows that we consider changed.
> The face-remap.el functions call force-mode-line-update to make sure
> face remapping lists take effect
force-mode-line-update sets a buffer-specific flag that disables some
redisplay optimizations, but I don't think that guarantees redrawing
of all the fringes of all the windows which show that buffer.
So I'm not sure we have that covered. But if you have tested that and
this actually work, fine; I don't pretend to know for sure this won't
work.
prev parent reply other threads:[~2025-01-04 7:12 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-02 17:30 bug#75291: Redisplay not updating fringe when face filter changes Daniel Colascione
2025-01-02 17:50 ` Eli Zaretskii
2025-01-02 18:36 ` Daniel Colascione
2025-01-02 19:24 ` Michal Nazarewicz
2025-01-02 19:26 ` Eli Zaretskii
2025-01-02 19:50 ` Daniel Colascione
2025-01-02 20:56 ` Eli Zaretskii
2025-01-03 17:25 ` Daniel Colascione
2025-01-03 19:31 ` Eli Zaretskii
2025-01-03 19:46 ` Daniel Colascione
2025-01-03 20:10 ` Eli Zaretskii
2025-01-03 20:27 ` Eli Zaretskii
2025-01-03 20:57 ` Daniel Colascione
2025-01-04 7:12 ` Eli Zaretskii [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=86pll3f3y2.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=75291@debbugs.gnu.org \
--cc=dancol@dancol.org \
--cc=mina86@mina86.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.