diff --git a/swt/src/main/java/edu/umd/cs/piccolox/swt/PSWTCanvas.java b/swt/src/main/java/edu/umd/cs/piccolox/swt/PSWTCanvas.java index e5cb3cc..0cf17ec 100644 --- a/swt/src/main/java/edu/umd/cs/piccolox/swt/PSWTCanvas.java +++ b/swt/src/main/java/edu/umd/cs/piccolox/swt/PSWTCanvas.java @@ -323,6 +323,10 @@ */ public void setDoubleBuffered(final boolean doubleBuffered) { this.doubleBuffered = doubleBuffered; + if (!doubleBuffered && backBuffer != null) { + backBuffer.dispose(); + backBuffer = null; + } } /** @@ -494,16 +498,16 @@ if (backBuffer != null) { backBuffer.dispose(); } - + System.out.println("new size: " + newWidth); - + backBuffer = new Image(getDisplay(), newWidth, newHeight); } private boolean backBufferNeedsResizing(final int newWidth, final int newHeight) { if (!doubleBuffered) return false; - + if (backBuffer == null) return true;