United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6691182 Flickering of gray box painter during applet resizes
JDK-6691182 : Flickering of gray box painter during applet resizes

Details
Type:
Bug
Submit Date:
2008-04-19
Status:
Closed
Updated Date:
2010-09-08
Project Name:
JDK
Resolved Date:
2008-06-19
Component:
deploy
OS:
generic
Sub-Component:
plugin
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6u10
Fixed Versions:
6u10 (b23)

Related Reports
Relates:
Relates:
Relates:

Sub Tasks

Description
The gray box painter, responsible for displaying an image, animated GIF, or Java logo before the applet has loaded, is exhibiting flickering during live applet resizes (for example, for applets that are a percentage of the page's width or height). The root cause is the AWT's native painting of the background of this and sub-components; see 6691181.
This is likely related to flickering seen during live resizes of certain applets, although we are deferring the investigation of that flickering in order to incorporate this bug fix first, which contains the necessary utility methods to eliminate said flicker at the applet level.

                                    

Comments
SUGGESTED FIX

webrev: http://sa.sfbay.sun.com/projects/deployment_data/6u10/6691182.0
testcase: http://j2se.east.sun.com/deployment/www/tests/1.6.0_10/6691182/
                                     
2008-04-20
EVALUATION

The root cause of the flickering of the gray box painter during applet
resizes is the native background erasing performed by the AWT.

Under related bug 6691181, a new variant of the Sun-private
SunToolkit.disableBackgroundErase() has been added which applies to
all Components for which the flag is valid (currently any component
with a WCanvasPeer or XCanvasPeer). This API is now being called for
those components where it seems to be needed to avoid flickering: the
PluginEmbeddedFrame, the GrayBoxPanel and the AnimationPanel.

Note that ###@###.### has reported flickering upon resize on
X11 platforms with certain applets which is also caused by the native
background erasing. Further investigation will be done to isolate and
fix this issue. It is likely that we will rely on the same
SunToolkit.disableBackgroundErase() primitive to do so.

Also modified JVMInstance to pass through SetAppletSizeMessages before
the applet has started, in order to be able to resize the gray box
painter appropriately, and pushed a null check in the GrayBoxPanel
further down.
                                     
2008-04-20



Hardware and Software, Engineered to Work Together