Index: /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 10575)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 10576)
@@ -200,5 +200,5 @@
     @Override
     public void filterChanged() {
-        redraw();
+        invalidate();
     }
 
@@ -283,4 +283,5 @@
      * @see Main#map
      * @see MapFrame#repaint()
+     * @see #invalidate() To trigger a repaint of all places where the layer is displayed.
      */
     protected void redraw() {
@@ -290,14 +291,35 @@
 
     @Override
+    public void invalidate() {
+        needRedraw = true;
+        super.invalidate();
+    }
+
+    /**
+     * {@inheritDoc}
+     * @deprecated Use {@link TileSourceDisplaySettings#getDx()}
+     */
+    @Override
+    @Deprecated
     public double getDx() {
         return getDisplaySettings().getDx();
     }
 
-    @Override
+    /**
+     * {@inheritDoc}
+     * @deprecated Use {@link TileSourceDisplaySettings#getDy()}
+     */
+    @Override
+    @Deprecated
     public double getDy() {
         return getDisplaySettings().getDy();
     }
 
-    @Override
+    /**
+     * {@inheritDoc}
+     * @deprecated Use {@link TileSourceDisplaySettings}
+     */
+    @Override
+    @Deprecated
     public void displace(double dx, double dy) {
         getDisplaySettings().addDisplacement(new EastNorth(dx, dy));
@@ -305,7 +327,9 @@
 
     /**
-     * Marks layer as needing redraw on offset change
-     */
-    @Override
+     * {@inheritDoc}
+     * @deprecated Use {@link TileSourceDisplaySettings}
+     */
+    @Override
+    @Deprecated
     public void setOffset(double dx, double dy) {
         getDisplaySettings().setDisplacement(new EastNorth(dx, dy));
@@ -446,5 +470,5 @@
             if (clickedTile != null) {
                 loadTile(clickedTile, true);
-                redraw();
+                invalidate();
             }
         }
@@ -528,5 +552,4 @@
         public void actionPerformed(ActionEvent ae) {
             loadAllTiles(true);
-            redraw();
         }
     }
@@ -540,5 +563,4 @@
         public void actionPerformed(ActionEvent ae) {
             loadAllErrorTiles(true);
-            redraw();
         }
     }
@@ -566,5 +588,4 @@
         public void actionPerformed(ActionEvent ae) {
             setZoomLevel(getBestZoom());
-            redraw();
         }
     }
@@ -579,5 +600,4 @@
         public void actionPerformed(ActionEvent ae) {
             increaseZoomLevel();
-            redraw();
         }
     }
@@ -592,5 +612,4 @@
         public void actionPerformed(ActionEvent ae) {
             decreaseZoomLevel();
-            redraw();
         }
     }
@@ -747,15 +766,15 @@
             if (getDisplaySettings().isAutoZoom() && getBestZoom() != currentZoomLevel) {
                 setZoomLevel(getBestZoom());
-                redraw();
+                invalidate();
             }
             break;
         case TileSourceDisplaySettings.AUTO_LOAD:
             if (getDisplaySettings().isAutoLoad()) {
-                redraw();
+                invalidate();
             }
             break;
         default:
             // trigger a redraw just to be sure.
-            redraw();
+            invalidate();
         }
     }
@@ -843,5 +862,5 @@
             ((TMSCachedTileLoader) tileLoader).cancelOutstandingTasks();
         }
-        needRedraw = true;
+        invalidate();
     }
 
@@ -1007,4 +1026,5 @@
         }
         ts.loadAllTiles(force);
+        invalidate();
     }
 
@@ -1012,4 +1032,5 @@
         TileSet ts = getVisibleTileSet();
         ts.loadAllErrorTiles(force);
+        invalidate();
     }
 
