JAL-3210 Improvements to eclipse detection. New src tree and SwingJS updated from...
[jalview.git] / src / jalview / gui / SeqCanvas.java
index 2d83e9e..123e649 100755 (executable)
@@ -372,6 +372,10 @@ public class SeqCanvas extends JPanel implements ViewportListenerI
   public void paintComponent(Graphics g)
   {
 
+    if (av.getAlignPanel().getHoldRepaint())
+    {
+      return;
+    }
     int charHeight = av.getCharHeight();
     int charWidth = av.getCharWidth();
 
@@ -1690,6 +1694,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI
     // Make sure we're not trying to draw a panel
     // larger than the visible window
     int scrollX = 0;
+    int scrollY = 0;
     switch (eventName)
     {
     case SequenceGroup.SEQ_GROUP_CHANGED:
@@ -1717,8 +1722,21 @@ public class SeqCanvas extends JPanel implements ViewportListenerI
     case ViewportRanges.STARTRESANDSEQ:
       scrollX = ((int[]) evt.getNewValue())[0]
               - ((int[]) evt.getOldValue())[0];
+      scrollY = ((int[]) evt.getNewValue())[1]
+              - ((int[]) evt.getOldValue())[1];
+
+      // System.out.println("SC dx dy " + scrollX + " " + scrollY);
+
+      if (scrollX != 0 && scrollY != 0)
+      {
+        // all sorts of problems in JavaScript if this is commented out.
+        repaint();
+        return;
+
+      }
       break;
     }
+
     ViewportRanges vpRanges = av.getRanges();
     int range = vpRanges.getEndRes() - vpRanges.getStartRes() + 1;
     scrollX = Math.max(Math.min(scrollX, range), -range);
@@ -1729,7 +1747,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI
     }
     else
     {
-      fastPaint(scrollX, 0);
+      fastPaint(scrollX, scrollY);
     }
 
     // BH 2019.07.27 was: