diff --git a/core/src/main/java/org/piccolo2d/PCanvas.java b/core/src/main/java/org/piccolo2d/PCanvas.java index 737311a..e8d4448 100644 --- a/core/src/main/java/org/piccolo2d/PCanvas.java +++ b/core/src/main/java/org/piccolo2d/PCanvas.java @@ -264,7 +264,7 @@ if (camera != null) { camera.setComponent(this); - camera.setBounds(getBounds()); + camera.setBounds(0, 0, getWidth(), getHeight()); } } diff --git a/core/src/test/java/org/piccolo2d/PCanvasTest.java b/core/src/test/java/org/piccolo2d/PCanvasTest.java index a291e32..df9153d 100644 --- a/core/src/test/java/org/piccolo2d/PCanvasTest.java +++ b/core/src/test/java/org/piccolo2d/PCanvasTest.java @@ -30,10 +30,10 @@ import java.awt.Cursor; -import org.piccolo2d.PCanvas; import org.piccolo2d.event.PInputEventListener; import org.piccolo2d.util.PBounds; import org.piccolo2d.util.PPaintContext; +import org.piccolo2d.util.PUtil; import junit.framework.TestCase; @@ -119,6 +119,25 @@ assertEquals(new PBounds(0, 0, 100, 100), canvas.getCamera().getBounds()); } + public void testSettingCanvasBoundsNotAtOrigin() { + canvas.setBounds(50, 50, 100, 100); + assertEquals(new PBounds(0, 0, 100, 100), canvas.getCamera().getBounds()); // camera should remain at (0,0) + } + + public void testSettingCameraAffectsCameraBounds() { + canvas.setBounds(0, 0, 100, 100); + PCamera camera = PUtil.createBasicScenegraph(); + canvas.setCamera(camera); + assertEquals(new PBounds(0, 0, 100, 100), canvas.getCamera().getBounds()); + } + + public void testSettingCameraOnCanvasNotAtOrigin() { + canvas.setBounds(50, 50, 100, 100); + PCamera camera = PUtil.createBasicScenegraph(); + canvas.setCamera(camera); + assertEquals(new PBounds(0, 0, 100, 100), canvas.getCamera().getBounds()); // camera should remain at (0,0) + } + public void testAddInputEventListenersIsHonoured() { canvas.addInputEventListener(mockListener); final PInputEventListener[] listeners = canvas.getInputEventListeners();