JAL-2600 updates following review
[jalview.git] / src / jalview / appletgui / SeqCanvas.java
index da54ecf..469dec9 100755 (executable)
@@ -873,15 +873,17 @@ public class SeqCanvas extends Panel implements ViewportListenerI
   @Override
   public void propertyChange(PropertyChangeEvent evt)
   {
+    String eventName = evt.getPropertyName();
+
     if (!av.getWrapAlignment())
     {
-      if (evt.getPropertyName().equals("startres")
-              || evt.getPropertyName().equals("endres"))
+      int scrollX = 0;
+      if (eventName.equals(ViewportRanges.STARTRES))
       {
         // 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();
@@ -890,15 +892,24 @@ public class SeqCanvas extends Panel implements ViewportListenerI
         {
           scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
         }
+      }
+
+      // Both scrolling and resizing change viewport ranges: scrolling changes
+      // both start and end points, but resize only changes end values.
+      // Here we only want to fastpaint on a scroll, with resize using a normal
+      // paint, so scroll events are identified as changes to the horizontal or
+      // vertical start value.
+      if (eventName.equals(ViewportRanges.STARTRES))
+      {
+        // scroll - startres and endres both change
         fastPaint(scrollX, 0);
       }
-      else if (evt.getPropertyName().equals("startseq")
-              || evt.getPropertyName().equals("endseq"))
+      else if (eventName.equals(ViewportRanges.STARTSEQ))
       {
+        // scroll
         fastPaint(0, (int) evt.getNewValue() - (int) evt.getOldValue());
       }
     }
-
   }
 
 }