From a32f6025da958da04bb7df72aba2776933357ed0 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Mon, 22 Jan 2007 23:17:15 +0000 Subject: [PATCH] Populate metrics for NULL/broken fonts. Now our glyph boxes have 2007-01-22 Behdad Esfahbod * pango/fonts.c (pango_font_get_metrics): Populate metrics for NULL/broken fonts. Now our glyph boxes have underlines too. Yay! svn path=/trunk/; revision=2178 --- ChangeLog | 5 +++++ pango/fonts.c | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6516d9a..7a83833 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-01-22 Behdad Esfahbod + + * pango/fonts.c (pango_font_get_metrics): Populate metrics for + NULL/broken fonts. Now our glyph boxes have underlines too. Yay! + 2007-01-21 Tor Lillqvist * configure.in: Add AC_MSG_RESULT([no]) to the failed branch of diff --git a/pango/fonts.c b/pango/fonts.c index 91186a0..2bf5d70 100644 --- a/pango/fonts.c +++ b/pango/fonts.c @@ -1338,13 +1338,25 @@ pango_font_get_metrics (PangoFont *font, { if (G_UNLIKELY (!PANGO_IS_FONT (font))) { + PangoFontMetrics *metrics; if (!_pango_warning_history.get_metrics) { _pango_warning_history.get_metrics = TRUE; g_warning (bad_font_warning, "pango_font_get_metrics"); } - return pango_font_metrics_new (); + metrics = pango_font_metrics_new (); + + metrics->ascent = PANGO_SCALE * PANGO_UNKNOWN_GLYPH_HEIGHT; + metrics->descent = 0; + metrics->approximate_char_width = PANGO_SCALE * PANGO_UNKNOWN_GLYPH_WIDTH; + metrics->approximate_digit_width = PANGO_SCALE * PANGO_UNKNOWN_GLYPH_WIDTH; + metrics->underline_position = -PANGO_SCALE; + metrics->underline_thickness = PANGO_SCALE; + metrics->strikethrough_position = PANGO_SCALE * PANGO_UNKNOWN_GLYPH_HEIGHT / 2; + metrics->strikethrough_thickness = PANGO_SCALE; + + return metrics; } return PANGO_FONT_GET_CLASS (font)->get_metrics (font, language); -- 2.7.4