[pango: 1/2] Use shape flags for tab width



commit c579c0a9c8ec198e5e85881c57393c67f0e85757
Author: Jan Alexander Steffens (heftig) <jan steffens gmail com>
Date:   Tue Feb 11 03:51:19 2020 +0100

    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

 pango/pango-layout.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 44d59367..643f5623 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -3061,6 +3061,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);
@@ -3089,7 +3093,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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]