diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2017-12-19 15:51:16 -0500 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2017-12-19 15:51:16 -0500 |
commit | 6d1d44d5ec5100a3db850dddd7b4e4196e8a5cdb (patch) | |
tree | 001096212fb15a17dcbfebbbb61decfaeb077e18 /src | |
parent | 650b051a2562ab5813d0671323e00f31cd79b37b (diff) |
Let pattern FC_FONT_VARIATIONS override standard axis variations
Ie. flip the merge order.
Diffstat (limited to 'src')
-rw-r--r-- | src/fcmatch.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/fcmatch.c b/src/fcmatch.c index 4656417b..22c37840 100644 --- a/src/fcmatch.c +++ b/src/fcmatch.c @@ -540,12 +540,7 @@ FcFontRenderPrepare (FcConfig *config, FcPatternObjectGetBool (font, FC_VARIABLE_OBJECT, 0, &variable); assert (variable != FcDontCare); if (variable) - { - FcChar8 *vars = NULL; FcStrBufInit (&variations, NULL, 0); - if (FcPatternObjectGetString (pat, FC_FONT_VARIATIONS_OBJECT, 0, &vars) == FcResultMatch) - FcStrBufString (&variations, vars); - } new = FcPatternCreate (); if (!new) @@ -739,11 +734,18 @@ FcFontRenderPrepare (FcConfig *config, } } - if (variable) + if (variable && variations.len) { - FcPatternObjectDel (new, FC_FONT_VARIATIONS_OBJECT); - FcPatternObjectAddString (new, FC_FONT_VARIATIONS_OBJECT, FcStrBufDoneStatic (&variations)); - FcStrBufDestroy (&variations); + FcChar8 *vars = NULL; + if (FcPatternObjectGetString (new, FC_FONT_VARIATIONS_OBJECT, 0, &vars) == FcResultMatch) + { + 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); |