Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 19578)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 19579)
@@ -101,5 +101,5 @@
     private final LayerVisibilityAction visibilityAction = new LayerVisibilityAction(Collections::emptyList,
             () -> Collections.singleton(imageryFilterSettings));
-
+    private final CloseOtherTabsAction closeAllTabsAction = new CloseOtherTabsAction();
     private final ImageDisplay imgDisplay = new ImageDisplay(imageryFilterSettings);
     private Future<?> imgLoadingFuture;
@@ -418,4 +418,5 @@
         imageZoomAction.destroy();
         toggleAction.destroy();
+        closeAllTabsAction.destroy();
         cancelLoadingImage();
         super.destroy();
@@ -608,5 +609,5 @@
         }
     }
-    
+
     private class ImageRemoveAction extends JosmAction {
         ImageRemoveAction() {
@@ -757,4 +758,26 @@
     }
 
+    private class CloseOtherTabsAction extends JosmAction {
+        CloseOtherTabsAction() {
+            super(tr("close-other-tabs"), new ImageProvider("misc", "close"), tr("Close other tabs"),
+                    Shortcut.registerShortcut("closeother", "close other tabs", KeyEvent.VK_Y, Shortcut.ALT), false, null,
+                    false);
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            for (int i = layers.getTabCount() - 1; i >= 0; i--) {
+                Component component = layers.getComponentAt(i);
+                if (component instanceof MoveImgDisplayPanel) {
+                    MoveImgDisplayPanel<?> moveImgDisplayPanel = (MoveImgDisplayPanel<?>) component;
+                    if (moveImgDisplayPanel.layer.containsImage(currentEntry))
+                        continue;
+                    layers.removeTabAt(i);
+                    layers.remove(moveImgDisplayPanel);
+                }
+            }
+        }
+    }
+
     /**
      * A tab title renderer for {@link HideableTabbedPane} that allows us to close tabs.
@@ -1033,5 +1056,5 @@
                 osd.append(tr("\nEXIF DTO time: {0}", dtf.format(entry.getExifInstant())));
             } else {
-                osd.append(tr("\nEXIF time: {0}", dtf.format(entry.getExifInstant())));        
+                osd.append(tr("\nEXIF time: {0}", dtf.format(entry.getExifInstant())));
             }
         }
@@ -1043,5 +1066,5 @@
             if (entry.hasGpsTime()) {
                 osd.append(tr("\nCorr GPS time: {0}", dtf.format(entry.getGpsInstant())));
-            }            
+            }
             if (entry.getExifImgDir() != null) {
                 osd.append(tr("\nDirection {0}\u00b0", Math.round(entry.getExifImgDir())));
@@ -1212,5 +1235,5 @@
         }
     }
-    
+
     private void registerOnLayer(Layer layer) {
         if (layer instanceof IGeoImageLayer) {
