From 8bc08dc2900da1cbb34987934b8954fdb576dfeb Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 29 Aug 2021 21:20:37 -0400 Subject: Add pango_layout_iter_get_run_baseline This is useful information. --- pango/pango-layout.c | 16 ++++++++++++++++ pango/pango-layout.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 5aa9ee12..86c67020 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -7305,6 +7305,22 @@ pango_layout_iter_get_baseline (PangoLayoutIter *iter) return iter->line_extents[iter->line_index].baseline; } +int +pango_layout_iter_get_run_baseline (PangoLayoutIter *iter) +{ + ItemProperties properties; + + if (ITER_IS_INVALID (iter)) + return 0; + + if (!iter->run) + return iter->line_extents[iter->line_index].baseline; + + pango_layout_get_item_properties (iter->run->item, &properties); + + return iter->line_extents[iter->line_index].baseline - properties.rise; +} + /** * pango_layout_iter_get_layout_extents: * @iter: a `PangoLayoutIter` diff --git a/pango/pango-layout.h b/pango/pango-layout.h index 3b30a251..e28f9295 100644 --- a/pango/pango-layout.h +++ b/pango/pango-layout.h @@ -466,6 +466,8 @@ void pango_layout_iter_get_layout_extents (PangoLayoutIter *iter, PangoRectangle *logical_rect); PANGO_AVAILABLE_IN_ALL int pango_layout_iter_get_baseline (PangoLayoutIter *iter); +PANGO_AVAILABLE_IN_1_50 +int pango_layout_iter_get_run_baseline (PangoLayoutIter *iter); G_END_DECLS -- cgit v1.2.1