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

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

bug#54646: 29.0.50; set-fontset-font and font clipping issues


From: Visuwesh
Subject: bug#54646: 29.0.50; set-fontset-font and font clipping issues
Date: Fri, 01 Apr 2022 17:08:59 +0530
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

[வெள்ளி ஏப்ரல் 01, 2022] Eli Zaretskii wrote:

>> From: Robert Pluim <rpluim@gmail.com>
>> Cc: 54646@debbugs.gnu.org,Eli Zaretskii <eliz@gnu.org>
>> Date: Fri, 01 Apr 2022 10:49:21 +0200
>> 
>>     Visuwesh> I can reproduce it in HarfBuzz 4.2.0.  Maybe this could be 
>> related to
>>     Visuwesh> the toolkit being used?  I have only tested so far with Lucid. 
>>  I will
>>     Visuwesh> try GTK some time later.
>> 
>> Iʼve managed to reproduce this, but only once, with HarfBuzz 4.2.0
>> using lucid and Kurinto Seri. I guess that points more at HarfBuzz
>> than at Emacs, but maybe the lucid build is doing things slightly
>> differently to gtk.
>
> I think at this point we need to establish whether we pass the same
> information to HarfBuzz in the "good" and the "bad" cases.  In
> particular, we tell it how to scale the glyph metrics:
>
>   hb_font_t *hb_font
>     = font->driver->begin_hb_font
>     ? font->driver->begin_hb_font (font, &position_unit)
>     : NULL;
>
> The value of position_unit then affects the values returned in the
> Lisp glyph object used to display the grapheme cluster:
>
>       xoff = lround (pos[i].x_offset * position_unit);
>       yoff = - lround (pos[i].y_offset * position_unit);
>       wadjust = lround (pos[i].x_advance * position_unit);
>       if (xoff || yoff || wadjust != metrics.width)
>       LGLYPH_SET_ADJUSTMENT (lglyph, CALLN (Fvector,
>                                             make_fixnum (xoff),
>                                             make_fixnum (yoff),
>                                             make_fixnum (wadjust)));
>
> I'd be interested in what happens there in the "good" vs the "bad"
> cases.
>
> If we pass the same information to HarfBuzz, and it returns different
> results, then it's probably a problem in HarfBuzz.

If you can give some instructions on how to get started, I can try
getting the value of position_unit in the good and the bad cases.





reply via email to

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