From 4748b81da848bf5e09be3e75e9f22fd7532cae30 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Tue, 19 Nov 2013 10:36:02 -0800 Subject: [PATCH] 8027541: ully transparent jframe becomes black Reviewed-by: bae, ceisserer --- .../solaris/classes/sun/java2d/xr/XRSurfaceData.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java b/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java index f05243e407b..c6953151a19 100644 --- a/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java +++ b/jdk/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java @@ -245,7 +245,17 @@ public abstract class XRSurfaceData extends XSurfaceData { ColorModel cm, Image image, long drawable, int transparency) { - int depth = transparency > Transparency.OPAQUE ? 32 : 24; + int depth; + // If we have a 32 bit color model for the window it needs + // alpha to support translucency of the window so we need + // to upgrade what was requested for the surface. + if (gc.getColorModel().getPixelSize() == 32) { + depth = 32; + transparency = Transparency.TRANSLUCENT; + } else { + depth = transparency > Transparency.OPAQUE ? 32 : 24; + } + if (depth == 24) { cm = new DirectColorModel(depth, 0x00FF0000, 0x0000FF00, 0x000000FF);