aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorprr <none@none>2013-11-19 10:36:02 -0800
committerprr <none@none>2013-11-19 10:36:02 -0800
commit2b54086e801ac3b21d133ae53a0b2a9ac5b4e9ab (patch)
tree50c0bb5f5896434d84cfbe1991466c6d38aa833e /src
parent7c5e6f4b831dd18741fad881737045dd1a00d513 (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.java12
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);