diff options
author | prr <none@none> | 2013-11-19 10:36:02 -0800 |
---|---|---|
committer | prr <none@none> | 2013-11-19 10:36:02 -0800 |
commit | 2b54086e801ac3b21d133ae53a0b2a9ac5b4e9ab (patch) | |
tree | 50c0bb5f5896434d84cfbe1991466c6d38aa833e /src | |
parent | 7c5e6f4b831dd18741fad881737045dd1a00d513 (diff) |
8027541: ully transparent jframe becomes black.
Reviewed-by: bae, ceisserer
Diffstat (limited to 'src')
-rw-r--r-- | src/solaris/classes/sun/java2d/xr/XRSurfaceData.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java b/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java index f05243e40..c6953151a 100644 --- a/src/solaris/classes/sun/java2d/xr/XRSurfaceData.java +++ b/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); |