JAL-2587 prevented double overview recalc on opening overview
[jalview.git] / src / jalview / appletgui / SeqCanvas.java
index 469dec9..9de5452 100755 (executable)
@@ -420,6 +420,9 @@ public class SeqCanvas extends Panel implements ViewportListenerI
 
     FontMetrics fm = getFontMetrics(av.getFont());
 
+    LABEL_EAST = 0;
+    LABEL_WEST = 0;
+
     if (av.getScaleRightWrapped())
     {
       LABEL_EAST = fm.stringWidth(getMask());
@@ -441,17 +444,17 @@ public class SeqCanvas extends Panel implements ViewportListenerI
 
     av.setWrappedWidth(cWidth);
 
-    av.getRanges().setEndRes(av.getRanges().getStartRes() + cWidth - 1);
+    av.getRanges().setViewportStartAndWidth(startRes, cWidth);
 
     int endx;
     int ypos = hgap;
 
-    int maxwidth = av.getAlignment().getWidth() - 1;
+    int maxwidth = av.getAlignment().getWidth();
 
     if (av.hasHiddenColumns())
     {
       maxwidth = av.getAlignment().getHiddenColumns()
-              .findColumnPosition(maxwidth) - 1;
+              .findColumnPosition(maxwidth);
     }
 
     while ((ypos <= canvasHeight) && (startRes < maxwidth))
@@ -884,13 +887,14 @@ public class SeqCanvas extends Panel implements ViewportListenerI
         // larger than the visible window
         ViewportRanges vpRanges = av.getRanges();
         scrollX = (int) evt.getNewValue() - (int) evt.getOldValue();
-        if (scrollX > vpRanges.getEndRes() - vpRanges.getStartRes())
+        int range = vpRanges.getEndRes() - vpRanges.getStartRes();
+        if (scrollX > range)
         {
-          scrollX = vpRanges.getEndRes() - vpRanges.getStartRes();
+          scrollX = range;
         }
-        else if (scrollX < vpRanges.getStartRes() - vpRanges.getEndRes())
+        else if (scrollX < -range)
         {
-          scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
+          scrollX = -range;
         }
       }