diff options
Diffstat (limited to 'gfx/cairo/win32-vertically-offset-glyph.patch')
-rw-r--r-- | gfx/cairo/win32-vertically-offset-glyph.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gfx/cairo/win32-vertically-offset-glyph.patch b/gfx/cairo/win32-vertically-offset-glyph.patch new file mode 100644 index 0000000000..ffdf63b4a4 --- /dev/null +++ b/gfx/cairo/win32-vertically-offset-glyph.patch @@ -0,0 +1,23 @@ +diff --git a/gfx/cairo/cairo/src/cairo-win32-surface.c b/gfx/cairo/cairo/src/cairo-win32-surface.c +--- a/gfx/cairo/cairo/src/cairo-win32-surface.c ++++ b/gfx/cairo/cairo/src/cairo-win32-surface.c +@@ -1742,17 +1742,18 @@ _cairo_win32_surface_show_glyphs (void + + cairo_matrix_transform_point(&device_to_logical, + &next_user_x, &next_user_y); + + next_logical_x = _cairo_lround (next_user_x); + next_logical_y = _cairo_lround (next_user_y); + + dxy_buf[j] = _cairo_lround (next_logical_x - logical_x); +- dxy_buf[j+1] = _cairo_lround (next_logical_y - logical_y); ++ dxy_buf[j+1] = _cairo_lround (logical_y - next_logical_y); ++ /* note that GDI coordinate system is inverted */ + + logical_x = next_logical_x; + logical_y = next_logical_y; + } + } + + /* Using glyph indices for a Type 1 font does not work on a + * printer DC. The win32 printing surface will convert the the |