diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c index d99c261..5cdc3d7 100644 --- a/src/cairo-win32-font.c +++ b/src/cairo-win32-font.c @@ -970,18 +970,20 @@ _cairo_win32_scaled_font_init_glyph_metrics (cairo_win32_scaled_font_t *scaled_f /* If we aren't rotating / skewing the axes, then we get the metrics * from the GDI in device space and convert to font space. */ status = cairo_win32_scaled_font_select_font (&scaled_font->base, hdc); if (status) return status; + SetLastError(0); if (GetGlyphOutlineW (hdc, _cairo_scaled_glyph_index (scaled_glyph), GGO_METRICS | GGO_GLYPH_INDEX, &metrics, 0, NULL, &matrix) == GDI_ERROR) { - status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_init_glyph_metrics:GetGlyphOutlineW"); + if (GetLastError()) + status = _cairo_win32_print_gdi_error ("_cairo_win32_scaled_font_init_glyph_metrics:GetGlyphOutlineW"); memset (&metrics, 0, sizeof (GLYPHMETRICS)); } cairo_win32_scaled_font_done_font (&scaled_font->base); if (status) return status; if (scaled_font->swap_axes) {