From 1cac253753d25d8b3e17522e3ba07c9868fa17ba Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 14 Jan 2020 16:15:17 +0800 Subject: 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. (cherry-picked from commit 4c6f0b3c) --- pango/pangofc-shape.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'pango/pangofc-shape.c') diff --git a/pango/pangofc-shape.c b/pango/pangofc-shape.c index 9fe193f6..471d4f55 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 */ -- cgit v1.2.1 From a7c32cfd053ce49193cba933c10bc25f1ffa5b9f Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 17 Mar 2021 14:37:13 +0100 Subject: Fix placement of marks in upright vertical text. (cherry-picked from commit 3396cc20) --- pango/pangofc-shape.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'pango/pangofc-shape.c') diff --git a/pango/pangofc-shape.c b/pango/pangofc-shape.c index 471d4f55..69f5462b 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 */ -- cgit v1.2.1