diff options
Diffstat (limited to 'gfx/cairo/win32-canvas-glyph-position.patch')
-rw-r--r-- | gfx/cairo/win32-canvas-glyph-position.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gfx/cairo/win32-canvas-glyph-position.patch b/gfx/cairo/win32-canvas-glyph-position.patch new file mode 100644 index 000000000..4ed10596c --- /dev/null +++ b/gfx/cairo/win32-canvas-glyph-position.patch @@ -0,0 +1,31 @@ +diff --git a/gfx/cairo/cairo/src/cairo-win32-font.c b/gfx/cairo/cairo/src/cairo-win32-font.c +--- a/gfx/cairo/cairo/src/cairo-win32-font.c ++++ b/gfx/cairo/cairo/src/cairo-win32-font.c +@@ -1182,22 +1182,22 @@ _add_glyph (cairo_glyph_state_t *state, + if (state->glyphs.num_elements > 0) { + int dx; + + if (logical_y != state->last_y) { + status = _flush_glyphs (state); + if (status) + return status; + state->start_x = logical_x; ++ } else { ++ dx = logical_x - state->last_x; ++ status = _cairo_array_append (&state->dx, &dx); ++ if (status) ++ return status; + } +- +- dx = logical_x - state->last_x; +- status = _cairo_array_append (&state->dx, &dx); +- if (status) +- return status; + } else { + state->start_x = logical_x; + } + + state->last_x = logical_x; + state->last_y = logical_y; + + status = _cairo_array_append (&state->glyphs, &glyph_index); |