summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-01-22 23:17:15 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-01-22 23:17:15 +0000
commita32f6025da958da04bb7df72aba2776933357ed0 (patch)
tree2e829681ee25517fd616fcd4b2f81d37b56b5ebd
parent025f6441632acbfafa4d2f15714d2d60e6b40809 (diff)
downloadpango-a32f6025da958da04bb7df72aba2776933357ed0.tar.gz
Populate metrics for NULL/broken fonts. Now our glyph boxes have
2007-01-22 Behdad Esfahbod <behdad@gnome.org> * 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
-rw-r--r--ChangeLog5
-rw-r--r--pango/fonts.c14
2 files changed, 18 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 6516d9a1..7a83833c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-22 Behdad Esfahbod <behdad@gnome.org>
+
+ * 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 <tml@novell.com>
* configure.in: Add AC_MSG_RESULT([no]) to the failed branch of
diff --git a/pango/fonts.c b/pango/fonts.c
index 91186a09..2bf5d70c 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);