X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FViewportRanges.java;fp=src%2Fjalview%2Fviewmodel%2FViewportRanges.java;h=4f671da9ce899376397a2486c789ecd7aef84d1e;hb=65740880573a48adc758bec3939ece9d9ae104dd;hp=6f817bb0cdd8c8a82a93a7b5c43da29686cfcc62;hpb=71aa78b8a7d54e5aeb6b278310dfd735efb77477;p=jalview.git diff --git a/src/jalview/viewmodel/ViewportRanges.java b/src/jalview/viewmodel/ViewportRanges.java index 6f817bb..4f671da 100644 --- a/src/jalview/viewmodel/ViewportRanges.java +++ b/src/jalview/viewmodel/ViewportRanges.java @@ -224,6 +224,7 @@ public class ViewportRanges extends ViewportProperties */ public void setStartEndSeq(int start, int end) { + // System.out.println("ViewportRange setStartEndSeq " + start + " " + end); int[] oldvalues = updateStartEndSeq(start, end); int oldstartseq = oldvalues[0]; int oldendseq = oldvalues[1]; @@ -285,12 +286,12 @@ public class ViewportRanges extends ViewportProperties * event. * * @param seq - * sequence position + * sequence position in the range [0, height) */ public void setEndSeq(int seq) { - int height = getViewportHeight(); - setStartEndSeq(seq - height + 1, seq); + // BH 2018.04.18 added safety for seq < 0; comment about not being >= height + setStartEndSeq(Math.max(0, seq + 1 - getViewportHeight()), seq); } /** @@ -425,17 +426,21 @@ public class ViewportRanges extends ViewportProperties public void setViewportStartAndHeight(int start, int h) { int vpstart = start; + + int visHeight = getVisibleAlignmentHeight(); if (vpstart < 0) { vpstart = 0; } - else if ((h <= getVisibleAlignmentHeight()) - && (vpstart + h - 1 > getVisibleAlignmentHeight() - 1)) + else if (h <= visHeight && vpstart + h > visHeight) // viewport height is less than the full alignment and we are running off // the bottom { - vpstart = getVisibleAlignmentHeight() - h; + vpstart = visHeight - h; } + // System.out.println("ViewportRanges setviewportStartAndHeight " + vpstart + // + " " + start + " " + h + " " + getVisibleAlignmentHeight()); + setStartEndSeq(vpstart, vpstart + h - 1); }