Index: /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadAction.java	(revision 11658)
@@ -48,4 +48,5 @@
             if (dialog.isDownloadOsmData()) {
                 DownloadOsmTask task = new DownloadOsmTask();
+                task.setZoomAfterDownload(dialog.isZoomToDownloadedDataRequired());
                 Future<?> future = task.download(dialog.isNewLayerRequired(), area, null);
                 Main.worker.submit(new PostDownloadHandler(task, future));
@@ -53,4 +54,5 @@
             if (dialog.isDownloadGpxData()) {
                 DownloadGpsTask task = new DownloadGpsTask();
+                task.setZoomAfterDownload(dialog.isZoomToDownloadedDataRequired());
                 Future<?> future = task.download(dialog.isNewLayerRequired(), area, null);
                 Main.worker.submit(new PostDownloadHandler(task, future));
@@ -58,4 +60,5 @@
             if (dialog.isDownloadNotes()) {
                 DownloadNotesTask task = new DownloadNotesTask();
+                task.setZoomAfterDownload(dialog.isZoomToDownloadedDataRequired());
                 Future<?> future = task.download(false, area, null);
                 Main.worker.submit(new PostDownloadHandler(task, future));
Index: /trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 11658)
@@ -81,4 +81,5 @@
             Bounds area = dialog.getSelectedDownloadArea();
             DownloadOsmTask task = new DownloadOsmTask();
+            task.setZoomAfterDownload(dialog.isZoomToDownloadedDataRequired());
             Future<?> future = task.download(
                     new OverpassDownloadReader(area, OverpassServerPreference.getOverpassServer(), dialog.getOverpassQuery()),
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractDownloadTask.java	(revision 11658)
@@ -17,4 +17,5 @@
     private boolean failed;
     protected T downloadedData;
+    protected boolean zoomAfterDownload = true;
 
     /**
@@ -75,4 +76,13 @@
     public final T getDownloadedData() {
         return downloadedData;
+    }
+
+    /**
+     * Sets whether the map view will zoom to download area after download
+     * @param zoomAfterDownload if true, the map view will zoom to download area after download
+     * @since 11658
+     */
+    public final void setZoomAfterDownload(boolean zoomAfterDownload) {
+        this.zoomAfterDownload = zoomAfterDownload;
     }
 
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 11658)
@@ -163,5 +163,5 @@
                 mergeLayer.mergeFrom(layer);
                 mergeLayer.invalidate();
-                if (Main.map != null) {
+                if (Main.map != null && zoomAfterDownload) {
                     Main.map.mapView.scheduleZoomTo(new ViewportData(layer.getViewProjectionBounds()));
                 }
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java	(revision 11658)
@@ -14,4 +14,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.ViewportData;
 import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.NoteData;
@@ -117,4 +118,7 @@
             if (!noteLayers.isEmpty()) {
                 noteLayers.get(0).getNoteData().addNotes(notesData);
+                if (Main.map != null && zoomAfterDownload) {
+                    Main.map.mapView.scheduleZoomTo(new ViewportData(noteLayers.get(0).getViewProjectionBounds()));
+                }
             } else {
                 Main.getLayerManager().addLayer(new NoteLayer(notesData, tr("Notes")));
Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 11658)
@@ -115,5 +115,5 @@
      */
     public Future<?> download(OsmServerReader reader, boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
-        return download(new DownloadTask(newLayer, reader, progressMonitor), downloadArea);
+        return download(new DownloadTask(newLayer, reader, progressMonitor, zoomAfterDownload), downloadArea);
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 11657)
+++ /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 11658)
@@ -63,4 +63,5 @@
     private static final BooleanProperty DOWNLOAD_NOTES = new BooleanProperty("download.notes", false);
     private static final BooleanProperty DOWNLOAD_NEWLAYER = new BooleanProperty("download.newlayer", false);
+    private static final BooleanProperty DOWNLOAD_ZOOMTODATA = new BooleanProperty("download.zoomtodata", true);
 
     /** the unique instance of the download dialog */
@@ -84,4 +85,5 @@
     protected JCheckBox cbNewLayer;
     protected JCheckBox cbStartup;
+    protected JCheckBox cbZoomToDownloadedData;
     protected final JLabel sizeCheck = new JLabel();
     protected transient Bounds currentBounds;
@@ -161,6 +163,12 @@
         cbStartup.addActionListener(e -> DOWNLOAD_AUTORUN.put(cbStartup.isSelected()));
 
+        cbZoomToDownloadedData = new JCheckBox(tr("Zoom to downloaded data"));
+        cbZoomToDownloadedData.setToolTipText(tr("Select to zoom to entire newly downloaded data."));
+
         pnl.add(cbNewLayer, GBC.std().anchor(GBC.WEST).insets(5, 5, 5, 5));
         pnl.add(cbStartup, GBC.std().anchor(GBC.WEST).insets(15, 5, 5, 5));
+        pnl.add(cbZoomToDownloadedData, GBC.std().anchor(GBC.WEST).insets(15, 5, 5, 5));
+
+        ExpertToggleAction.addVisibilitySwitcher(cbZoomToDownloadedData);
 
         pnl.add(sizeCheck, GBC.eol().anchor(GBC.EAST).insets(5, 5, 5, 2));
@@ -192,4 +200,6 @@
         InputMapUtils.addEnterActionWhenAncestor(cbDownloadNotes, actDownload);
         InputMapUtils.addEnterActionWhenAncestor(cbNewLayer, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbStartup, actDownload);
+        InputMapUtils.addEnterActionWhenAncestor(cbZoomToDownloadedData, actDownload);
 
         // -- cancel button
@@ -339,4 +349,14 @@
 
     /**
+     * Replies true if the user requires to zoom to new downloaded data
+     *
+     * @return true if the user requires to zoom to new downloaded data
+     * @since 11658
+     */
+    public boolean isZoomToDownloadedDataRequired() {
+        return cbZoomToDownloadedData.isSelected();
+    }
+
+    /**
      * Adds a new download area selector to the download dialog
      *
@@ -367,4 +387,5 @@
         DOWNLOAD_NOTES.put(cbDownloadNotes.isSelected());
         DOWNLOAD_NEWLAYER.put(cbNewLayer.isSelected());
+        DOWNLOAD_ZOOMTODATA.put(cbZoomToDownloadedData.isSelected());
         if (currentBounds != null) {
             Main.pref.put("osm-download.bounds", currentBounds.encodeAsString(";"));
@@ -381,4 +402,5 @@
         cbNewLayer.setSelected(DOWNLOAD_NEWLAYER.get());
         cbStartup.setSelected(isAutorunEnabled());
+        cbZoomToDownloadedData.setSelected(DOWNLOAD_ZOOMTODATA.get());
         int idx = Utils.clamp(DOWNLOAD_TAB.get(), 0, tpDownloadAreaSelectors.getTabCount() - 1);
         tpDownloadAreaSelectors.setSelectedIndex(idx);
