bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41645: 27.0.91; Combining Grapheme Joiner (#x34f) gui artifacts


From: Pip Cet
Subject: bug#41645: 27.0.91; Combining Grapheme Joiner (#x34f) gui artifacts
Date: Mon, 1 Jun 2020 18:09:27 +0000

On Mon, Jun 1, 2020 at 4:14 PM Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Pip Cet <pipcet@gmail.com>
> > Date: Mon, 1 Jun 2020 15:50:16 +0000
> > Cc: David Fussner <dfussner@googlemail.com>, 41645@debbugs.gnu.org
> >
> > > I cannot reproduce this on my system, FWIW.  Very strange.
> >
> > I can reproduce this, but it depends on which font it uses.
>
> I have only 2 fonts that cover that codepoint, and both produce
> correct display.  When I try a font that doesn't support it, I see a
> box with hex code, which, of course, causes no problems.

The problem is a zero-width glyph in a gstring. Fixing the artifact is
easy (see attached patch), but that still means when the cursor is on
the CGJ it's invisible. My impression is most code paths avoid
zero-width glyphs for that reason.

> When you do reproduce the problem, do the characters around CGJ use
> the same font as the CGJ itself, or do they use a different font?

The same font.

> If
> the latter, the composition won't work, and maybe that is when the
> problem happens?

Indeed, the composition gstring is a single zero-width glyph.

> > Is it possible it's bug 41454? I'm attaching that patch in case it
> > does anything and people feel like testing it.
>
> I'm guessing you already tested, and it doesn't fix the problem for
> you (when you use the fonts which do reproduce the problem)?

I tested, thought it had fixed the problem, had to run off, returned,
tested again, and it turned out not to fix the problem. Sorry about
that.

> I think that bug is unlikely to be the culprit: symptoms such as those
> described here usually mean that Emacs becomes confused about the
> metrics of the character's glyph on display.  So to find the root
> cause, one should step through the code which draws the character and
> then the code which draws the cursor on that character, and see what's
> going on there with the metrics.

How about this, as a first stop-gap until we figure out how to
properly prevent automatic compositions resulting in zero-width struct
glyphs?

Attachment: 0001-Avoid-cursor-display-artifacts-for-zero-width-glyphs.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]