Let pattern FC_FONT_VARIATIONS override standard axis variations
Ie. flip the merge order.
This commit is contained in:
parent
650b051a25
commit
6d1d44d5ec
|
@ -540,12 +540,7 @@ FcFontRenderPrepare (FcConfig *config,
|
||||||
FcPatternObjectGetBool (font, FC_VARIABLE_OBJECT, 0, &variable);
|
FcPatternObjectGetBool (font, FC_VARIABLE_OBJECT, 0, &variable);
|
||||||
assert (variable != FcDontCare);
|
assert (variable != FcDontCare);
|
||||||
if (variable)
|
if (variable)
|
||||||
{
|
|
||||||
FcChar8 *vars = NULL;
|
|
||||||
FcStrBufInit (&variations, NULL, 0);
|
FcStrBufInit (&variations, NULL, 0);
|
||||||
if (FcPatternObjectGetString (pat, FC_FONT_VARIATIONS_OBJECT, 0, &vars) == FcResultMatch)
|
|
||||||
FcStrBufString (&variations, vars);
|
|
||||||
}
|
|
||||||
|
|
||||||
new = FcPatternCreate ();
|
new = FcPatternCreate ();
|
||||||
if (!new)
|
if (!new)
|
||||||
|
@ -739,11 +734,18 @@ FcFontRenderPrepare (FcConfig *config,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (variable)
|
if (variable && variations.len)
|
||||||
{
|
{
|
||||||
FcPatternObjectDel (new, FC_FONT_VARIATIONS_OBJECT);
|
FcChar8 *vars = NULL;
|
||||||
FcPatternObjectAddString (new, FC_FONT_VARIATIONS_OBJECT, FcStrBufDoneStatic (&variations));
|
if (FcPatternObjectGetString (new, FC_FONT_VARIATIONS_OBJECT, 0, &vars) == FcResultMatch)
|
||||||
FcStrBufDestroy (&variations);
|
{
|
||||||
|
FcStrBufChar (&variations, ',');
|
||||||
|
FcStrBufString (&variations, vars);
|
||||||
|
FcPatternObjectDel (new, FC_FONT_VARIATIONS_OBJECT);
|
||||||
|
}
|
||||||
|
|
||||||
|
FcPatternObjectAddString (new, FC_FONT_VARIATIONS_OBJECT, FcStrBufDoneStatic (&variations));
|
||||||
|
FcStrBufDestroy (&variations);
|
||||||
}
|
}
|
||||||
|
|
||||||
FcConfigSubstituteWithPat (config, new, pat, FcMatchFont);
|
FcConfigSubstituteWithPat (config, new, pat, FcMatchFont);
|
||||||
|
|
Loading…
Reference in New Issue