JDK-2177444 : Translucent windows are completely repainted on every paint event, on Windows
  • Type: Backport
  • Backport of: JDK-6794764
  • Component: client-libs
  • Sub-Component: java.awt
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2009-04-30
  • Updated: 2011-03-07
  • Resolved: 2011-03-07
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u18Fixed 7 b60Fixed
Comments
EVALUATION Not approved for JDK 7 M3. This non-critical performance fix can wait until M4.
04-05-2009

EVALUATION The fix is to reuse TranslucentWindowPainter back buffer when painting into perpixel translucent windows. Roughly, the fix is: WWindowPeer.java: + @Override + public Graphics getGraphics() { + if (isOpaque) { + return super.getGraphics(); + } else { + return painter.getBackBuffer(false).getGraphics(); + } + } Another issue I noticed while working on the fix is that on Windows (and X11 as well) platform it is AWT who is responsible for filling the background for perpixel translucent windows. This was not a problem for 6u10, but it should be taken into consideration when the translucency mode is controlled with Window.setBackground() method.
30-04-2009