summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/win32-vertically-offset-glyph.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/win32-vertically-offset-glyph.patch')
-rw-r--r--gfx/cairo/win32-vertically-offset-glyph.patch23
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 000000000..ffdf63b4a
--- /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