7a900c00cc6f3f7bc046dac0f6c8432394c8a43d
max
  Tue Nov 8 16:08:24 2016 -0800
fix to zoom shortcuts for multi-exon mode, refs #18367

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index a8807cd..3a9b3c2 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -3332,33 +3332,35 @@
         position = hgTracks.nonVirtPosition;
     }
     var pos = parsePosition(position);
     if (pos) {
         var url = "hgc?hgsid="+getHgsid()+"&g=getDna&i=mixed&c="+pos.chrom+"&l="+pos.start+"&r="+pos.end+"&db="+getDb();
         window.location.href = url;
     }
     return false;
 }
 
 // A function for the keyboard shortcuts "zoom to x bp"
 function zoomTo(zoomSize) {
     var flankSize = Math.floor(zoomSize/2);
     var pos = parsePosition(genomePos.get());
     var mid = pos.start+(Math.floor((pos.end-pos.start)/2));
-    var newStart = Math.max(mid - flankSize, hgTracks.chromStart);
-    var newEnd = Math.min(mid + flankSize - 1, hgTracks.chromEnd);
-    var newPos = genomePos.setByCoordinates(hgTracks.chromName, newStart, newEnd);
+    var newStart = Math.max(mid - flankSize, 0);
+    var newEnd = mid + flankSize - 1;
+    var newPos = genomePos.setByCoordinates(pos.chrom, newStart, newEnd);
+    if (hgTracks.virtualSingleChrom && (newPos.search("virt:")===0))
+        newPos = genomePos.disguisePosition(newPosition); // DISGUISE?
     imageV2.navigateInPlace("position="+newPos, null, true);
 }
 
   //////////////////////////////////
  //// popup (aka modal dialog) ////
 //////////////////////////////////
 var popUp = {
 
     trackName:            "",
     trackDescriptionOnly: false,
     saveAllVars:          null,
 
     cleanup: function ()
     {  // Clean out the popup box on close
         if ($('#hgTrackUiDialog').html().length > 0 ) {