michael@0: diff --git a/gfx/cairo/cairo/src/cairo-win32-surface.c b/gfx/cairo/cairo/src/cairo-win32-surface.c michael@0: --- a/gfx/cairo/cairo/src/cairo-win32-surface.c michael@0: +++ b/gfx/cairo/cairo/src/cairo-win32-surface.c michael@0: @@ -1742,17 +1742,18 @@ _cairo_win32_surface_show_glyphs (void michael@0: michael@0: cairo_matrix_transform_point(&device_to_logical, michael@0: &next_user_x, &next_user_y); michael@0: michael@0: next_logical_x = _cairo_lround (next_user_x); michael@0: next_logical_y = _cairo_lround (next_user_y); michael@0: michael@0: dxy_buf[j] = _cairo_lround (next_logical_x - logical_x); michael@0: - dxy_buf[j+1] = _cairo_lround (next_logical_y - logical_y); michael@0: + dxy_buf[j+1] = _cairo_lround (logical_y - next_logical_y); michael@0: + /* note that GDI coordinate system is inverted */ michael@0: michael@0: logical_x = next_logical_x; michael@0: logical_y = next_logical_y; michael@0: } michael@0: } michael@0: michael@0: /* Using glyph indices for a Type 1 font does not work on a michael@0: * printer DC. The win32 printing surface will convert the the