mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-06 05:00:17 +01:00
quartz: Work around bad glyph extents returned by CoreGraphics for empty glyphs in Al Bayan font
This resolves the problem by checking for the crazy glyph bbox result from CoreGraphics, and replacing it with an empty rect. From https://bugzilla.mozilla.org/show_bug.cgi?id=534260
This commit is contained in:
parent
c5d9643417
commit
0068d9b5cd
1 changed files with 10 additions and 0 deletions
|
|
@ -420,6 +420,16 @@ _cairo_quartz_init_glyph_metrics (cairo_quartz_scaled_font_t *font,
|
|||
!CGFontGetGlyphBBoxesPtr (font_face->cgFont, &glyph, 1, &bbox))
|
||||
goto FAIL;
|
||||
|
||||
/* broken fonts like Al Bayan return incorrect bounds for some null characters,
|
||||
see https://bugzilla.mozilla.org/show_bug.cgi?id=534260 */
|
||||
if (unlikely (bbox.origin.x == -32767 &&
|
||||
bbox.origin.y == -32767 &&
|
||||
bbox.size.width == 65534 &&
|
||||
bbox.size.height == 65534)) {
|
||||
bbox.origin.x = bbox.origin.y = 0;
|
||||
bbox.size.width = bbox.size.height = 0;
|
||||
}
|
||||
|
||||
status = _cairo_matrix_compute_basis_scale_factors (&font->base.scale,
|
||||
&xscale, &yscale, 1);
|
||||
if (status)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue