diff --git a/gfx/cairo/README b/gfx/cairo/README index 4df51f9792b..bd93b7a5460 100644 --- a/gfx/cairo/README +++ b/gfx/cairo/README @@ -27,3 +27,8 @@ fbcompose-bandaid.patch: Disable "optimized" code in non-MMX case due to bugs win32-scaled-font-size.patch: Add cairo_win32_font_face_create_for_logfontw_hfont, allow win32 scaled_fonts to rescale themselves properly to the required CTM and only use the font_face's hfont if we're sure it's appropriate + +win32-no-printer-bitblt.patch: If we need to BitBlt from a DC (to do +fallback), only bother trying if the IS_DISPLAY flag is set -- many +printers lie about their support for BitBlt, and we end up getting +black instead of what we want. diff --git a/gfx/cairo/win32-no-printer-bitblt.patch b/gfx/cairo/win32-no-printer-bitblt.patch new file mode 100644 index 00000000000..a4607637525 --- /dev/null +++ b/gfx/cairo/win32-no-printer-bitblt.patch @@ -0,0 +1,17 @@ +diff -r 0a3ea2430215 gfx/cairo/cairo/src/cairo-win32-surface.c +--- a/gfx/cairo/cairo/src/cairo-win32-surface.c Fri Jun 08 18:04:18 2007 -0700 ++++ b/gfx/cairo/cairo/src/cairo-win32-surface.c Fri Jun 08 18:06:00 2007 -0700 +@@ -476,7 +476,12 @@ _cairo_win32_surface_get_subimage (cairo + + status = CAIRO_INT_STATUS_UNSUPPORTED; + +- if ((local->flags & CAIRO_WIN32_SURFACE_CAN_BITBLT) && ++ /* Check for SURFACE_IS_DISPLAY here, because there are a lot ++ * of printer drivers that lie and say they can BitBlt, but ++ * just spit out black instead. ++ */ ++ if ((local->flags & CAIRO_WIN32_SURFACE_IS_DISPLAY) && ++ (local->flags & CAIRO_WIN32_SURFACE_CAN_BITBLT) && + BitBlt (local->dc, + 0, 0, + width, height,