summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-03-18 16:58:15 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-03-18 16:58:15 +0000
commitf05be99189d928c3ebfeb8c6b6fded34cdca6671 (patch)
tree11758909471043d56032d63ee95e248ac719f883
parentbff2adace6949e598e085eb23497e7d2629d06d5 (diff)
parent3396cc209b1b9a68d8b05d2bb9658c44c9df83b9 (diff)
downloadpango-f05be99189d928c3ebfeb8c6b6fded34cdca6671.tar.gz
Merge branch 'vertical-upright-glyphs' into 'master'
Fix placement of marks in upright vertical text for fonts without vertical metrics. Closes #454 See merge request GNOME/pango!297
-rw-r--r--pango/pangofc-fontmap.c5
-rw-r--r--pango/pangofc-shape.c7
2 files changed, 4 insertions, 8 deletions
diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c
index 358b33fb..5d5dfe55 100644
--- a/pango/pangofc-fontmap.c
+++ b/pango/pangofc-fontmap.c
@@ -1837,7 +1837,6 @@ pango_fc_make_pattern (const PangoFontDescription *description,
int slant;
double weight;
PangoGravity gravity;
- FcBool vertical;
char **families;
int i;
int width;
@@ -1848,7 +1847,6 @@ pango_fc_make_pattern (const PangoFontDescription *description,
width = pango_fc_convert_width_to_fc (pango_font_description_get_stretch (description));
gravity = pango_font_description_get_gravity (description);
- vertical = PANGO_GRAVITY_IS_VERTICAL (gravity) ? FcTrue : FcFalse;
/* The reason for passing in FC_SIZE as well as FC_PIXEL_SIZE is
* to work around a bug in libgnomeprint where it doesn't look
@@ -1857,13 +1855,14 @@ pango_fc_make_pattern (const PangoFontDescription *description,
* Putting FC_SIZE in here slightly reduces the efficiency
* of caching of patterns and fonts when working with multiple different
* dpi values.
+ *
+ * Do not pass FC_VERTICAL_LAYOUT true as HarfBuzz shaping assumes false.
*/
pattern = FcPatternBuild (NULL,
PANGO_FC_VERSION, FcTypeInteger, pango_version(),
FC_WEIGHT, FcTypeDouble, weight,
FC_SLANT, FcTypeInteger, slant,
FC_WIDTH, FcTypeInteger, width,
- FC_VERTICAL_LAYOUT, FcTypeBool, vertical,
#ifdef FC_VARIABLE
FC_VARIABLE, FcTypeBool, FcDontCare,
#endif
diff --git a/pango/pangofc-shape.c b/pango/pangofc-shape.c
index 16d5d84d..5c716b24 100644
--- a/pango/pangofc-shape.c
+++ b/pango/pangofc-shape.c
@@ -409,12 +409,9 @@ pango_hb_shape (PangoFont *font,
for (i = 0; i < num_glyphs; i++)
{
/* 90 degrees rotation counter-clockwise. */
- hb_position_t x_origin = 0, y_origin = 0;
- hb_font_get_glyph_v_origin
- (hb_font, infos[i].glyph, &x_origin, &y_origin);
infos[i].geometry.width = - hb_position->y_advance;
- infos[i].geometry.x_offset = - hb_position->y_offset - y_origin;
- infos[i].geometry.y_offset = - hb_position->x_offset - x_origin;
+ infos[i].geometry.x_offset = - hb_position->y_offset;
+ infos[i].geometry.y_offset = - hb_position->x_offset;
hb_position++;
}
else /* horizontal */