summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2017-12-19 15:51:16 -0500
committerBehdad Esfahbod <behdad@behdad.org>2017-12-19 15:51:16 -0500
commit6d1d44d5ec5100a3db850dddd7b4e4196e8a5cdb (patch)
tree001096212fb15a17dcbfebbbb61decfaeb077e18 /src
parent650b051a2562ab5813d0671323e00f31cd79b37b (diff)
Let pattern FC_FONT_VARIATIONS override standard axis variations
Ie. flip the merge order.
Diffstat (limited to 'src')
-rw-r--r--src/fcmatch.c20
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);