Subject: Re: bug#52493: 29.0.50; Setting Inconsolata up in init.el makes default face rendered wrong

From: Dmitry Gutov <[email-masked]>
Date: Fri, 17 Dec 2021 15:30:46 +0300

On 17.12.2021 10:37, Eli Zaretskii wrote:
>> Cc: [email-masked], [email-masked]
>> From: Dmitry Gutov <[email-masked]>
>> Date: Fri, 17 Dec 2021 03:49:36 +0300
>>
>> On 16.12.2021 19:56, Eli Zaretskii wrote:
>>> There's part of the font_delete_unmatched function that's conditioned
>>> on HAVE_NTGUI.  If you remove the condition (so that the code there is
>>> unconditionally compiled) and rebuild, does the problem go away?
>>
>> Yup! Seems to help.
> 
> Lars, do we make that kludge unconditionally compiled on all systems?
> The change which Dmitry's bisection found as the culprit cannot be
> undone, I think, because without it we cannot support medium weight
> separately from regular.

Are we sure the bisected change (dae3c4e89b27) itself doesn't need a 
tweak? From all the explanations here, I would expect

   (set-face-attribute 'default nil :height 110 :weight 'medium :family 
"Inconsolata")

to work correctly even without your "kludge". But it does not.

Like, okay, Inconsolata_dz has a weird "style" ("dz"), but the plain 
Inconsolata is "Medium".

>> When I evaluate
>>
>>     (set-face-attribute 'default nil :height 110 :family "InconsolataLGC")
>>
>> (this variation of the font doesn't have the original problem), the
>> height of the window shrinks, unless the window is maximized.
>>
>> If I evaluate it multiple times, the height shrinks every time I do that
>> (stopping at height 5, when even the minibuffer becomes inaccessible).
> 
> The original shrinking is expected, I think, but the subsequent ones
> shouldn't happen.  Martin, could you look into this, perhaps?

Since I'm measuring window height in characters (rows) here and not in 
pixels, I don't think even the first change should happen.

Though of course the window size in pixels should change.