JAL-2600 Abandoned fastpaint for resize; now full repaint, single call
[jalview.git] / src / jalview / gui / SeqCanvas.java
index d3ba304..448dc6d 100755 (executable)
@@ -286,8 +286,6 @@ public class SeqCanvas extends JComponent implements ViewportListenerI
     fastpainting = true;
     fastPaint = true;
     updateViewport();
-    gg.copyArea(horizontal * charWidth, vertical * charHeight, imgWidth,
-            imgHeight, -horizontal * charWidth, -vertical * charHeight);
 
     ViewportRanges ranges = av.getRanges();
     int sr = ranges.getStartRes();
@@ -297,6 +295,9 @@ public class SeqCanvas extends JComponent implements ViewportListenerI
     int transX = 0;
     int transY = 0;
 
+    gg.copyArea(horizontal * charWidth, vertical * charHeight, imgWidth,
+            imgHeight, -horizontal * charWidth, -vertical * charHeight);
+
     if (horizontal > 0) // scrollbar pulled right, image to the left
     {
       transX = (er - sr - horizontal) * charWidth;
@@ -989,14 +990,14 @@ public class SeqCanvas extends JComponent implements ViewportListenerI
   {
     if (!av.getWrapAlignment())
     {
-      if (evt.getPropertyName().equals("startres"))
+      int scrollX = 0;
+      if ((evt.getPropertyName().equals("startres"))
+              || (evt.getPropertyName().equals("endres")))
       {
-        // scroll - startres and endres both change
-
         // Make sure we're not trying to draw a panel
         // larger than the visible window
         ViewportRanges vpRanges = av.getRanges();
-        int scrollX = (int) evt.getNewValue() - (int) evt.getOldValue();
+        scrollX = (int) evt.getNewValue() - (int) evt.getOldValue();
         if (scrollX > vpRanges.getEndRes() - vpRanges.getStartRes())
         {
           scrollX = vpRanges.getEndRes() - vpRanges.getStartRes();
@@ -1005,11 +1006,17 @@ public class SeqCanvas extends JComponent implements ViewportListenerI
         {
           scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
         }
+      }
+
+      if (evt.getPropertyName().equals("startres"))
+      {
+        // scroll - startres and endres both change
         fastPaint(scrollX, 0);
       }
       else if (evt.getPropertyName().equals("endres"))
       {
         // resize - only endres changes
+
       }
       else if (evt.getPropertyName().equals("startseq"))
       {
@@ -1019,6 +1026,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI
       else if (evt.getPropertyName().equals("endseq"))
       {
         // resize
+
       }
     }
   }