diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2020-02-11 03:51:19 +0100 |
---|---|---|
committer | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2021-05-05 16:38:25 +0200 |
commit | 04031036fb1b80a47c7030053f4767363935c068 (patch) | |
tree | afe1e1958cafe1f2f0ff0b2fcf34c08c08f1a52d | |
parent | 8fcf1f7c129bebc2136be4fca12f31cab35518f4 (diff) | |
download | pango-04031036fb1b80a47c7030053f4767363935c068.tar.gz |
Use shape flags for tab width
We need to apply the right shape flags to the tab width calculation,
otherwise (when glyph positions get rounded, which is the default) our
tab width will be slightly off from what 8 spaces normally produce.
https://gitlab.gnome.org/GNOME/pango/issues/425
(cherry-picked from commit c579c0a9)
-rw-r--r-- | pango/pango-layout.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c index a1ebfbcc..16783941 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -3034,6 +3034,10 @@ ensure_tab_width (PangoLayout *layout) PangoAttrIterator *iter; PangoFontDescription *font_desc = pango_font_description_copy_static (pango_context_get_font_description (layout->context)); PangoLanguage *language; + PangoShapeFlags shape_flags = PANGO_SHAPE_NONE; + + if (pango_context_get_round_glyph_positions (layout->context)) + shape_flags |= PANGO_SHAPE_ROUND_POSITIONS; layout_attrs = pango_layout_get_effective_attributes (layout); iter = pango_attr_list_get_iterator (layout_attrs); @@ -3062,7 +3066,7 @@ ensure_tab_width (PangoLayout *layout) pango_attr_list_unref (tmp_attrs); item = items->data; - pango_shape (" ", 8, &item->analysis, glyphs); + pango_shape_with_flags (" ", 8, " ", 8, &item->analysis, glyphs, shape_flags); pango_item_free (item); g_list_free (items); |