summaryrefslogtreecommitdiff
path: root/pango/pangofc-shape.c
diff options
context:
space:
mode:
authorPeng Wu <pwu@redhat.com>2020-01-14 16:15:17 +0800
committerPeng Wu <pwu@redhat.com>2021-01-20 13:37:04 +0800
commit4c6f0b3c0e03731ef4e44cda5ab42c768dc761a2 (patch)
tree7f4caae62c1c512d3cf915d7c893496fffcf8256 /pango/pangofc-shape.c
parent59074f13f87f09f493b0534da302f915a3f67a8f (diff)
downloadpango-4c6f0b3c0e03731ef4e44cda5ab42c768dc761a2.tar.gz
Translate origin point for vertical layout
The origin point for vertical layout needs to be translated for cairo rendering from the horizontal origin to the vertical origin.
Diffstat (limited to 'pango/pangofc-shape.c')
-rw-r--r--pango/pangofc-shape.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/pango/pangofc-shape.c b/pango/pangofc-shape.c
index b6f74ca1..16d5d84d 100644
--- a/pango/pangofc-shape.c
+++ b/pango/pangofc-shape.c
@@ -409,9 +409,12 @@ pango_hb_shape (PangoFont *font,
for (i = 0; i < num_glyphs; i++)
{
/* 90 degrees rotation counter-clockwise. */
- infos[i].geometry.width = hb_position->y_advance;
- infos[i].geometry.x_offset = hb_position->y_offset;
- infos[i].geometry.y_offset = - hb_position->x_offset;
+ 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;
hb_position++;
}
else /* horizontal */