Dmitry Gutov <dgutov@yandex.ru> writes:
> On 20.11.2022 02:36, Po Lu via Bug reports for GNU Emacs, the Swiss
> army knife of text editors wrote:
>> Dmitry Gutov<dgutov@yandex.ru> writes:
>>
>>> No change since the last test I tried: fonts seem fine, but the frame
>>> size is jumping. I even did 'make bootstrap' to be doubly sure.
>> Thanks. Could you place a breakpoint on `apply_xft_settings' before
>> starting "emacs -Q", step through it, and try to find out what causes
>> the `changed' variable to be set to true?
>
> Apparently it's this part:
>
> #ifdef FC_HINT_STYLE
> if ((settings->seen & SEEN_HINTSTYLE) != 0
> && oldsettings.hintstyle != settings->hintstyle)
> {
> FcPatternDel (pat, FC_HINT_STYLE);
> FcPatternAddInteger (pat, FC_HINT_STYLE, settings->hintstyle);
> changed = true;
> oldsettings.hintstyle = settings->hintstyle;
> }
> #endif
>
> Here's the relevant part of the gdb log, since I don't have much
> experience with it. The assignment statement itself seems to be
> missing from the stepping, but 'changed' became true after:
>
> (gdb) n
> 842 FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi);
> (gdb) p changed
> $2 = false
> (gdb) n
> 844 if ((settings->seen & SEEN_AA) != 0 && oldsettings.aa !=
> settings->aa)
> (gdb) n
> 852 if ((settings->seen & SEEN_HINTING) != 0
> (gdb) n
> 860 if ((settings->seen & SEEN_RGBA) != 0 && oldsettings.rgba !=
> settings->rgba)
> (gdb) n
> 869 if ((settings->seen & SEEN_LCDFILTER) != 0
> (gdb) n
> 879 if ((settings->seen & SEEN_HINTSTYLE) != 0
> (gdb) n
> 882 FcPatternDel (pat, FC_HINT_STYLE);
> (gdb) n
> 883 FcPatternAddInteger (pat, FC_HINT_STYLE, settings->hintstyle);
> (gdb) n
> 885 oldsettings.hintstyle = settings->hintstyle;
> (gdb) n
> 894 oldsettings.dpi = dpyinfo->resx;
> (gdb) p changed
> $3 = true
Thanks. That's quite annoying, I guess Cairo isn't reporting the
default hint style to us either.
I can't think of a good solution off-hand, please give me some more
time.