Changeset 19675 in josm
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
r19080 r19675 1051 1051 1052 1052 maxVisibleRect.checkRectSize(); 1053 maxVisibleRect.checkRectPos(); 1053 1054 synchronized (this) { 1054 1055 this.visibleRect = maxVisibleRect; -
trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplayTest.java
r18684 r19675 10 10 import java.awt.Graphics2D; 11 11 import java.awt.Rectangle; 12 import java.awt.event.ComponentEvent; 13 import java.awt.event.ComponentListener; 12 14 import java.awt.event.MouseWheelEvent; 13 15 import java.awt.event.MouseWheelListener; … … 26 28 import org.junit.jupiter.api.Disabled; 27 29 import org.junit.jupiter.api.Test; 30 import org.openstreetmap.josm.data.imagery.street_level.Projections; 28 31 import org.openstreetmap.josm.gui.layer.geoimage.ImageDisplay.VisRect; 29 32 import org.openstreetmap.josm.gui.layer.imagery.ImageryFilterSettings; … … 113 116 } 114 117 118 /** 119 * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/24997">#24997</a>, shrinking a zoomed-in 120 * 360° image viewer must keep the visible rectangle inside the offscreen image. 121 */ 122 @Test 123 void testNonRegression24997() { 124 final ImageDisplay imageDisplay = new ImageDisplay(new ImageryFilterSettings()); 125 imageDisplay.setSize(800, 400); 126 imageDisplay.setImage0(new TestImageEntry(2000, 1000) { 127 @Override 128 public Projections getProjectionType() { 129 return Projections.EQUIRECTANGULAR; 130 } 131 132 @Override 133 public BufferedImage read(Dimension target) { 134 // Byte image, so that CameraPlane uses its fast byte mapping like for typical JPEG photos 135 return new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_3BYTE_BGR); 136 } 137 }).run(); 138 // zoom in near the bottom right corner, so the visible rectangle is moved away from the origin 139 final MouseWheelEvent zoomIn = new MouseWheelEvent(imageDisplay, 0, 0, 0, 790, 390, 790, 390, 0, 140 false, MouseWheelEvent.WHEEL_UNIT_SCROLL, -1, -1, -1); 141 for (MouseWheelListener listener : imageDisplay.getMouseWheelListeners()) { 142 listener.mouseWheelMoved(zoomIn); 143 } 144 145 imageDisplay.setSize(600, 300); 146 final ComponentEvent resized = new ComponentEvent(imageDisplay, ComponentEvent.COMPONENT_RESIZED); 147 for (ComponentListener listener : imageDisplay.getComponentListeners()) { 148 listener.componentResized(resized); 149 } 150 final Graphics2D g = new BufferedImage(600, 300, BufferedImage.TYPE_INT_ARGB).createGraphics(); 151 assertDoesNotThrow(() -> imageDisplay.paintComponent(g)); 152 } 153 115 154 private static class TestImageEntry extends ImageEntry { 116 155 private final int width;
Note:
See TracChangeset
for help on using the changeset viewer.
