From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- gfx/cairo/quartz-cg-layers-fix-fallback.patch | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 gfx/cairo/quartz-cg-layers-fix-fallback.patch (limited to 'gfx/cairo/quartz-cg-layers-fix-fallback.patch') diff --git a/gfx/cairo/quartz-cg-layers-fix-fallback.patch b/gfx/cairo/quartz-cg-layers-fix-fallback.patch new file mode 100644 index 000000000..bcebab350 --- /dev/null +++ b/gfx/cairo/quartz-cg-layers-fix-fallback.patch @@ -0,0 +1,42 @@ +Bug 572912. Fix surface type passed to cairo_quartz_surface_create during fallback for CGLayers. r=jrmuizel + +diff --git a/gfx/cairo/cairo/src/cairo-quartz-surface.c b/gfx/cairo/cairo/src/cairo-quartz-surface.c +--- a/gfx/cairo/cairo/src/cairo-quartz-surface.c ++++ b/gfx/cairo/cairo/src/cairo-quartz-surface.c +@@ -2026,17 +2026,17 @@ _cairo_quartz_surface_acquire_image (voi + + /* ND((stderr, "%p _cairo_quartz_surface_acquire_image\n", surface)); */ + + status = _cairo_quartz_get_image (surface, image_out); + + if (status == CAIRO_INT_STATUS_UNSUPPORTED && surface->cgLayer) { + /* copy the layer into a Quartz bitmap context so we can get the data */ + cairo_surface_t *tmp = +- cairo_quartz_surface_create (CAIRO_CONTENT_COLOR_ALPHA, ++ cairo_quartz_surface_create (CAIRO_FORMAT_ARGB32, + surface->extents.width, + surface->extents.height); + cairo_quartz_surface_t *tmp_surface = (cairo_quartz_surface_t *) tmp; + + /* if surface creation failed, we won't have a Quartz surface here */ + if (cairo_surface_get_type (tmp) == CAIRO_SURFACE_TYPE_QUARTZ && + tmp_surface->imageSurfaceEquiv) { + CGContextSaveGState (tmp_surface->cgContext); +@@ -2049,16 +2049,17 @@ _cairo_quartz_surface_acquire_image (voi + CGContextDrawLayerAtPoint (tmp_surface->cgContext, + CGPointMake (0.0, 0.0), + surface->cgLayer); + CGContextRestoreGState (tmp_surface->cgContext); + + *image_out = (cairo_image_surface_t*) + cairo_surface_reference(tmp_surface->imageSurfaceEquiv); + *image_extra = tmp; ++ status = CAIRO_STATUS_SUCCESS; + } else { + cairo_surface_destroy (tmp); + } + } + + if (status) + return _cairo_error (CAIRO_STATUS_NO_MEMORY); + -- cgit v1.2.3