< prev index next >
src/java.desktop/share/classes/javax/swing/RepaintManager.java
Print this page
*** 108,117 ****
--- 108,119 ----
boolean doubleBufferingEnabled = true;
private Dimension doubleBufferMaxSize;
+ private boolean isCustomMaxBufferSizeSet = false;
+
// Support for both the standard and volatile offscreen buffers exists to
// provide backwards compatibility for the [rare] programs which may be
// calling getOffScreenBuffer() and not expecting to get a VolatileImage.
// Swing internally is migrating to use *only* the volatile image buffer.
*** 333,343 ****
--- 335,351 ----
}
processingRunnable = new ProcessingRunnable();
}
private void displayChanged() {
+ if (isCustomMaxBufferSizeSet) {
clearImages();
+ } else {
+ // Reset buffer maximum size to get valid size from updated graphics
+ // environment in getDoubleBufferMaximumSize()
+ setDoubleBufferMaximumSize(null);
+ }
}
/**
* Mark the component as in need of layout and queue a runnable
* for the event dispatching thread that will validate the components
*** 1154,1165 ****
--- 1162,1175 ----
* @param d the dimension
*/
public void setDoubleBufferMaximumSize(Dimension d) {
doubleBufferMaxSize = d;
if (doubleBufferMaxSize == null) {
+ isCustomMaxBufferSizeSet = false;
clearImages();
} else {
+ isCustomMaxBufferSizeSet = true;
clearImages(d.width, d.height);
}
}
private void clearImages() {
< prev index next >