summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cairo-quartz-font.c7
-rw-r--r--test/reference/inverse-text.quartz.ref.pngbin2565 -> 2602 bytes
-rw-r--r--test/reference/pdf-operators-text.quartz.ref.pngbin0 -> 8226 bytes
-rw-r--r--test/reference/select-font-face.quartz.ref.pngbin2645 -> 2691 bytes
4 files changed, 6 insertions, 1 deletions
diff --git a/src/cairo-quartz-font.c b/src/cairo-quartz-font.c
index 000a0e237..641a2dfc7 100644
--- a/src/cairo-quartz-font.c
+++ b/src/cairo-quartz-font.c
@@ -412,7 +412,12 @@ _cairo_quartz_init_glyph_metrics (cairo_quartz_scaled_font_t *font,
extents.y_bearing = - ymax;
extents.width = xmax - xmin;
extents.height = ymax - ymin;
- extents.x_advance = advance.width;
+/* At the necessary 1.0pt ctFont size some glyphs get a reduced
+ * advance that causes overlaps when scaled up. We can avoid that by
+ * using the width instead if it's wider. Since cairo doesn't support
+ * vertical font layout we don't do the same for y_advance.
+ */
+ extents.x_advance = MAX(extents.width, advance.width);
extents.y_advance = advance.height;
#ifdef DEBUG
diff --git a/test/reference/inverse-text.quartz.ref.png b/test/reference/inverse-text.quartz.ref.png
index df0ea57ea..f57f45035 100644
--- a/test/reference/inverse-text.quartz.ref.png
+++ b/test/reference/inverse-text.quartz.ref.png
Binary files differ
diff --git a/test/reference/pdf-operators-text.quartz.ref.png b/test/reference/pdf-operators-text.quartz.ref.png
new file mode 100644
index 000000000..ecfa7cc5d
--- /dev/null
+++ b/test/reference/pdf-operators-text.quartz.ref.png
Binary files differ
diff --git a/test/reference/select-font-face.quartz.ref.png b/test/reference/select-font-face.quartz.ref.png
index 69fd2e239..1100fe28c 100644
--- a/test/reference/select-font-face.quartz.ref.png
+++ b/test/reference/select-font-face.quartz.ref.png
Binary files differ