Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java	(revision 18683)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java	(revision 18684)
@@ -365,8 +365,8 @@
                 currentVisibleRect.width = (int) (currentVisibleRect.width * ZOOM_STEP.get());
                 currentVisibleRect.height = (int) (currentVisibleRect.height * ZOOM_STEP.get());
-            } else {
+            } else if (rotation < 0) {
                 currentVisibleRect.width = (int) (currentVisibleRect.width / ZOOM_STEP.get());
                 currentVisibleRect.height = (int) (currentVisibleRect.height / ZOOM_STEP.get());
-            }
+            } // else rotation == 0, which can happen with some modern trackpads (see #22770)
 
             // Check that the zoom doesn't exceed MAX_ZOOM:1
