summaryrefslogtreecommitdiff
path: root/pango
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
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')
-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 */