summaryrefslogtreecommitdiff
path: root/pango/pangocairo-fcfont.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pangocairo-fcfont.c')
-rw-r--r--pango/pangocairo-fcfont.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/pango/pangocairo-fcfont.c b/pango/pangocairo-fcfont.c
index 5ca9bcb2..0e503061 100644
--- a/pango/pangocairo-fcfont.c
+++ b/pango/pangocairo-fcfont.c
@@ -216,7 +216,7 @@ pango_cairo_fc_font_get_metrics (PangoFont *font,
if (!tmp_list)
{
PangoContext *context;
- int height;
+ int height, shift;
if (!fcfont->fontmap)
return pango_font_metrics_new ();
@@ -248,7 +248,13 @@ pango_cairo_fc_font_get_metrics (PangoFont *font,
case PANGO_GRAVITY_WEST:
info->metrics->ascent = height / 2;
}
- info->metrics->descent = height - info->metrics->ascent;
+ shift = (height - info->metrics->ascent) - info->metrics->descent;
+ if (fcfont->is_hinted)
+ shift &= ~(PANGO_SCALE - 1);
+ info->metrics->descent += shift;
+ info->metrics->underline_position -= shift;
+ info->metrics->strikethrough_position -= shift;
+ info->metrics->ascent = height - info->metrics->descent;
g_object_unref (context);
}