8197499: RepaintManager does not increase double buffer after attaching a device with higher resolution

Reviewed-by: serb, prr
This commit is contained in:
Alexey Ushakov 2018-02-15 17:20:57 -08:00
parent eb9d86fff1
commit 10ef2cd87c

View file

@ -110,6 +110,8 @@ public class RepaintManager
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.
@ -335,7 +337,13 @@ public class RepaintManager
}
private void displayChanged() {
clearImages();
if (isCustomMaxBufferSizeSet) {
clearImages();
} else {
// Reset buffer maximum size to get valid size from updated graphics
// environment in getDoubleBufferMaximumSize()
setDoubleBufferMaximumSize(null);
}
}
/**
@ -1156,8 +1164,10 @@ public class RepaintManager
public void setDoubleBufferMaximumSize(Dimension d) {
doubleBufferMaxSize = d;
if (doubleBufferMaxSize == null) {
isCustomMaxBufferSizeSet = false;
clearImages();
} else {
isCustomMaxBufferSizeSet = true;
clearImages(d.width, d.height);
}
}