Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 16614)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 16615)
@@ -88,4 +88,5 @@
 import org.openstreetmap.josm.data.imagery.TileLoaderFactory;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.data.projection.Projection;
@@ -175,4 +176,6 @@
             PlatformManager.getPlatform().isHighDpiDisplay() ? 2 : 0);
 
+    private static final BooleanProperty POPUP_MENU_ENABLED = new BooleanProperty(PREFERENCE_PREFIX + ".popupmenu", true);
+
     /*
      *  use MemoryTileCache instead of tileLoader JCS cache, as tileLoader caches only content (byte[] of image)
@@ -195,5 +198,5 @@
             if (e.getButton() == MouseEvent.BUTTON3) {
                 Component component = e.getComponent();
-                if (component.isShowing()) {
+                if (POPUP_MENU_ENABLED.get() && component.isShowing()) {
                     new TileSourceLayerPopup(e.getX(), e.getY()).show(component, e.getX(), e.getY());
                 }
