summaryrefslogtreecommitdiff
path: root/pango/pango-layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-layout.c')
-rw-r--r--pango/pango-layout.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 57ec7606..2fe6c9dc 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -4982,7 +4982,7 @@ pango_layout_run_get_extents_and_height (PangoLayoutRun *run,
gboolean has_underline;
gboolean has_overline;
- if (G_UNLIKELY (!run_ink && !run_logical))
+ if (G_UNLIKELY (!run_ink && !run_logical && !height))
return;
pango_layout_get_item_properties (run->item, &properties);
@@ -5107,7 +5107,7 @@ pango_layout_line_get_extents_and_height (PangoLayoutLine *line,
g_return_if_fail (LINE_IS_VALID (line));
- if (G_UNLIKELY (!ink_rect && !logical_rect))
+ if (G_UNLIKELY (!ink_rect && !logical_rect && !height))
return;
switch (private->cache_status)
@@ -5213,8 +5213,15 @@ pango_layout_line_get_extents_and_height (PangoLayoutLine *line,
tmp_list = tmp_list->next;
}
- if (logical_rect && !line->runs)
- pango_layout_line_get_empty_extents (line, logical_rect);
+ if (!line->runs)
+ {
+ PangoRectangle r, *rect;
+
+ rect = logical_rect ? logical_rect : &r;
+ pango_layout_line_get_empty_extents (line, rect);
+ if (height)
+ *height = rect->height;
+ }
if (caching)
{