summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2017-09-18 15:03:36 -0400
committerBehdad Esfahbod <behdad@behdad.org>2017-09-20 13:21:52 -0700
commit5ee9c38df7708dfc544973fb7617231eb314b9b9 (patch)
tree8d06e4cf497dc08b901a7d23d2c7002de062755e /src
parent7e1b84100d9fff3409a8c3d1b800911bd0643761 (diff)
Revert "[varfonts] Use fvar data even if there's no variation in it"
This reverts commit 57764e3a36449da25bb829c34cb08c54e9e5de90. For regular font pattern we don't look into fvar, so it doesn't make sense to get non-variation from it either.
Diffstat (limited to 'src')
-rw-r--r--src/fcfreetype.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index c7984f37..616da191 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -1255,7 +1255,7 @@ FcFreeTypeQueryFace (const FT_Face face,
double max_value = master->axis[i].maximum / (double) (1 << 16);
const char *elt = NULL;
- if (min_value > def_value || def_value > max_value)
+ if (min_value > def_value || def_value > max_value || min_value == max_value)
continue;
switch (master->axis[i].tag)
@@ -1264,42 +1264,33 @@ FcFreeTypeQueryFace (const FT_Face face,
elt = FC_WEIGHT;
min_value = FcWeightFromOpenType (min_value);
max_value = FcWeightFromOpenType (max_value);
- variable_weight = FcTrue;
+ variable = variable_weight = FcTrue;
weight = 0; /* To stop looking for weight. */
break;
case FT_MAKE_TAG ('w','d','t','h'):
elt = FC_WIDTH;
/* Values in 'wdth' match Fontconfig FC_WIDTH_* scheme directly. */
- variable_width = FcTrue;
+ variable = variable_width = FcTrue;
width = 0; /* To stop looking for width. */
break;
case FT_MAKE_TAG ('o','p','s','z'):
elt = FC_SIZE;
/* Values in 'opsz' match Fontconfig FC_SIZE, both are in points. */
- variable_size = FcTrue;
+ variable = variable_size = FcTrue;
break;
}
if (elt)
{
- if (min_value == max_value)
+ FcRange *r = FcRangeCreateDouble (min_value, max_value);
+ if (!FcPatternAddRange (pat, elt, r))
{
- if (!FcPatternAddDouble (pat, elt, min_value))
- goto bail1;
- }
- else
- {
- FcRange *r = FcRangeCreateDouble (min_value, max_value);
- if (!FcPatternAddRange (pat, elt, r))
- {
- FcRangeDestroy (r);
- goto bail1;
- }
FcRangeDestroy (r);
- variable = FcTrue;
+ goto bail1;
}
+ FcRangeDestroy (r);
}
}