diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-08-14 15:29:08 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-08-14 15:29:08 +0100 |
commit | f6fc6f1ad0315d51b6b395749f8035fb7dcccbbc (patch) | |
tree | 4748ae4942e27071bf8572aad79f5bc9d73f1ffa /src/cairo.c | |
parent | 5bc7c059fdbfa4d3c89389f2272a3781c0a4e75e (diff) | |
download | cairo-f6fc6f1ad0315d51b6b395749f8035fb7dcccbbc.tar.gz |
gstate: Copy clusters for an untransformed unbounded surface
Fixes record-select-font-face
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo.c')
-rw-r--r-- | src/cairo.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/cairo.c b/src/cairo.c index e58206b63..a9f8c6e41 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -3057,7 +3057,7 @@ cairo_show_text (cairo_t *cr, const char *utf8) cairo_glyph_t stack_glyphs[CAIRO_STACK_ARRAY_LENGTH (cairo_glyph_t)]; cairo_text_cluster_t stack_clusters[CAIRO_STACK_ARRAY_LENGTH (cairo_text_cluster_t)]; cairo_scaled_font_t *scaled_font; - cairo_glyph_text_info_t info; + cairo_glyph_text_info_t info, *i; if (unlikely (cr->status)) return; @@ -3100,13 +3100,17 @@ cairo_show_text (cairo_t *cr, const char *utf8) if (num_glyphs == 0) return; - info.utf8 = utf8; - info.utf8_len = utf8_len; - info.clusters = clusters; - info.num_clusters = num_clusters; - info.cluster_flags = cluster_flags; + i = NULL; + if (has_show_text_glyphs) { + info.utf8 = utf8; + info.utf8_len = utf8_len; + info.clusters = clusters; + info.num_clusters = num_clusters; + info.cluster_flags = cluster_flags; + i = &info; + } - status = cr->backend->glyphs (cr, glyphs, num_glyphs, &info); + status = cr->backend->glyphs (cr, glyphs, num_glyphs, i); if (unlikely (status)) goto BAIL; |