diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-08-29 22:43:23 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-08-29 22:43:23 +0000 |
commit | f7a99fd86067f0ed9baa466d0f612365462cca20 (patch) | |
tree | cc879b32eb67677a88d475fbf01efaa91a464a01 /utils | |
parent | d37bfbfeaa900c0c95a42244a04785127f404a19 (diff) | |
parent | 6e2596ae578a22eda9794a7b23c9ac4c8cdef35b (diff) | |
download | pango-f7a99fd86067f0ed9baa466d0f612365462cca20.tar.gz |
Merge branch 'matthiasc/for-main' into 'main'
layout: Apply rise to cluster extents
See merge request GNOME/pango!457
Diffstat (limited to 'utils')
-rw-r--r-- | utils/viewer-pangocairo.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/utils/viewer-pangocairo.c b/utils/viewer-pangocairo.c index a6a416ee..6918d2e9 100644 --- a/utils/viewer-pangocairo.c +++ b/utils/viewer-pangocairo.c @@ -346,8 +346,13 @@ render_callback (PangoLayout *layout, iter = pango_layout_get_iter (layout); do { + PangoLayoutRun *run; PangoRectangle rect; + run = pango_layout_iter_get_run (iter); + if (!run) + continue; + pango_layout_iter_get_run_extents (iter, NULL, &rect); cairo_rectangle (cr, (double)rect.x / PANGO_SCALE - lw / 2, @@ -429,7 +434,8 @@ render_callback (PangoLayout *layout, pango_layout_iter_get_run_extents (iter, NULL, &rect); x_pos = rect.x; - y_pos = rect.y + pango_layout_iter_get_baseline (iter); + /* FIXME: need a run baseline */ + y_pos = pango_layout_iter_get_baseline (iter); for (int i = 0; i < run->glyphs->num_glyphs; i++) { @@ -470,6 +476,7 @@ render_callback (PangoLayout *layout, const PangoLogAttr *attrs; int n_attrs; int offset; + int num = 0; /* draw the caret positions in purple */ cairo_save (cr); @@ -519,7 +526,7 @@ render_callback (PangoLayout *layout, cairo_close_path (cr); cairo_fill (cr); - char *s = g_strdup_printf ("%d", i + trailing); + char *s = g_strdup_printf ("%d", num); cairo_set_source_rgb (cr, 0, 0, 0); cairo_move_to (cr, x / PANGO_SCALE - 5, y / PANGO_SCALE + 15); cairo_show_text (cr, s); @@ -527,9 +534,13 @@ render_callback (PangoLayout *layout, } if (i < run->item->num_chars) - p = g_utf8_next_char (p); + { + num++; + p = g_utf8_next_char (p); + } else trailing = TRUE; + } } while (pango_layout_iter_next_run (iter)); |