Comment # 31 on bug 904015 from
Using "FC_DEBUG=4 kwrite > antialias.txt", I can tell that our match for all
outline fonts is wrong.

    <match target="font">
                <!-- this test should not be needed, 
                     as antialiasing is done only for outlines,
                     but workarounds Qt5 issue, see bug 866705 -->
        <test name="outline">
            <bool>true</bool>
        </test>
        <edit name="antialias" mode="assign">
            <bool>true</bool>
        </edit>
    </match>

>From upstream:
https://www.freedesktop.org/software/fontconfig/fontconfig-user.html

<match target="pattern">

This element holds first a (possibly empty) list of <test> elements and then a
(possibly empty) list of <edit> elements. Patterns which match all of the tests
are subjected to all the edits. If 'target' is set to "font" instead of the
default "pattern", then this element applies to the font name resulting from a
match rather than a font pattern to be matched.

Let me explain it in another simple way:

If you use <match target="font">, you have to write a "test" condition that
actually matches "one" font. (you see there's no "the font names" but "the font
name").

We don't match any font in test, so the property "outline" is applied to
null/empty.

Then the edit block returns empty, too.

So here's the fix:

    <match target="pattern">
                <!-- this test should not be needed, 
                     as antialiasing is done only for outlines,
                     but workarounds Qt5 issue, see bug 866705 -->
        <test name="outline">
            <bool>true</bool>
        </test>
        <edit name="antialias" mode="assign">
            <bool>true</bool>
        </edit>
    </match>

Remember, any match that wish to have multiple possible values (an array) must
use the "pattern" target instead of "font" target.

All such matches in fontconfig/fonts-config need to be fixed.

Marguerite


You are receiving this mail because: