8be71ea001dc92c31702850b82736793299214eb max Tue Apr 30 13:58:44 2019 -0700 fix for between-bp highlight bug, many thanks to Angie for fixing my fix, refs #23349 and related build patch diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 99173a0..65d5c70 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -408,30 +408,35 @@ x1 = Math.max(hgTracks.insideX, selStart); startDelta = Math.floor(mult * (x1 - hgTracks.insideX + halfBpWidth)); } var endDelta; var x2; if (hgTracks.revCmplDisp) { endDelta = startDelta; x2 = Math.min(imgWidth, selEnd); startDelta = Math.floor(mult * (imgWidth - x2 + halfBpWidth)); } else { x2 = Math.max(hgTracks.insideX, selEnd); endDelta = Math.floor(mult * (x2 - hgTracks.insideX - halfBpWidth)); } var newStart = hgTracks.winStart + startDelta; var newEnd = hgTracks.winStart + 1 + endDelta; + + // if user selects space between two bases, start>end can happen + if (newStart >= newEnd) + newStart = newEnd-1; + if (newEnd > winEnd) { newEnd = winEnd; } return {chromStart : newStart, chromEnd : newEnd}; }, chromToVirtChrom: function (chrom, chromStart, chromEnd) { // Convert regular chromosome position to virtual chrom coordinates using hgTracks.windows list // Consider the first contiguous set of overlapping regions to define the match (for now). // only works for regions covered by the current hgTracks.windows var virtStart = -1, virtEnd = -1; var s,e; var i, len; for (i = 0, len = hgTracks.windows.length; i < len; ++i) { var w = hgTracks.windows[i];