JAL-2674 2nd attempt to refactor seqcanvas drawing to iterator
[jalview.git] / src / jalview / appletgui / SeqCanvas.java
index 74a9f7f..67b21bc 100755 (executable)
@@ -562,7 +562,7 @@ public class SeqCanvas extends Panel implements ViewportListenerI
       int screenY = 0;
       final int screenYMax = endRes - startRes;
       int blockStart = startRes;
-      int blockEnd = endRes;
+      int blockEnd = endRes; // equals blockStart + screenYMax - screenY;
 
       HiddenColumns hidden = av.getAlignment().getHiddenColumns();
       Iterator<int[]> regions = hidden.iterator();
@@ -575,6 +575,7 @@ public class SeqCanvas extends Panel implements ViewportListenerI
         if (hideStart <= blockStart)
         {
           blockStart += (hideEnd - hideStart) + 1;
+          blockEnd += (hideEnd - hideStart) + 1;
           continue;
         }
 
@@ -582,8 +583,7 @@ public class SeqCanvas extends Panel implements ViewportListenerI
          * draw up to just before the next hidden region, or the end of
          * the visible region, whichever comes first
          */
-        blockEnd = Math.min(hideStart - 1,
-                blockStart + screenYMax - screenY);
+        blockEnd = Math.min(blockEnd, hideStart - 1);
         g1.translate(screenY * avcharWidth, 0);
 
         draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);
@@ -603,6 +603,7 @@ public class SeqCanvas extends Panel implements ViewportListenerI
         g1.translate(-screenY * avcharWidth, 0);
         screenY += blockEnd - blockStart + 1;
         blockStart = hideEnd + 1;
+        blockEnd = blockStart + screenYMax - screenY;
 
         if (screenY > screenYMax)
         {
@@ -614,10 +615,8 @@ public class SeqCanvas extends Panel implements ViewportListenerI
       if (screenY <= screenYMax)
       {
         // remaining visible region to render
-        blockEnd = blockStart + screenYMax - screenY;
         g1.translate(screenY * avcharWidth, 0);
         draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);
-
         g1.translate(-screenY * avcharWidth, 0);
       }
     }