summaryrefslogtreecommitdiff
path: root/src/cairo.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-14 15:29:08 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-14 15:29:08 +0100
commitf6fc6f1ad0315d51b6b395749f8035fb7dcccbbc (patch)
tree4748ae4942e27071bf8572aad79f5bc9d73f1ffa /src/cairo.c
parent5bc7c059fdbfa4d3c89389f2272a3781c0a4e75e (diff)
downloadcairo-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.c18
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;