fastPaint modified incase scroll is more than page size
authoramwaterhouse <Andrew Waterhouse>
Mon, 18 Apr 2005 08:04:44 +0000 (08:04 +0000)
committeramwaterhouse <Andrew Waterhouse>
Mon, 18 Apr 2005 08:04:44 +0000 (08:04 +0000)
src/jalview/gui/IdCanvas.java

index f1ab981..6c50f31 100755 (executable)
@@ -56,16 +56,23 @@ public class IdCanvas extends JPanel
     gg.copyArea( 0,0, getWidth(), imgHeight, 0, -vertical*av.charHeight );\r
 \r
     int ss=av.startSeq, es=av.endSeq, transY = 0;\r
-     if(vertical>0)    // scroll down\r
+    if (vertical > 0) // scroll down\r
      {\r
-       transY = imgHeight - vertical*av.charHeight;\r
        ss = es - vertical;\r
+       if(ss<av.startSeq) // ie scrolling too fast, more than a page at a time\r
+         ss = av.startSeq;\r
+       else\r
+         transY = imgHeight - vertical * av.charHeight;\r
      }\r
-     else if(vertical<0)\r
+     else if (vertical < 0)\r
      {\r
-       es = ss-vertical;\r
+       es = ss - vertical;\r
+       if(es > av.endSeq)\r
+         es = av.endSeq;\r
      }\r
 \r
+\r
+\r
         gg.translate(0, transY);\r
 \r
         drawIds(ss, es);\r
@@ -84,8 +91,8 @@ public class IdCanvas extends JPanel
 \r
     if (fastPaint)\r
     {\r
-      g.drawImage(image, 0, 0, this);\r
       fastPaint = false;\r
+      g.drawImage(image, 0, 0, this);\r
       return;\r
     }\r
 \r
@@ -109,11 +116,9 @@ public class IdCanvas extends JPanel
 \r
   void drawIds(int starty, int endy)\r
   {\r
-\r
     Color currentColor     = Color.white;\r
     Color currentTextColor = Color.black;\r
 \r
-\r
     if (av.getWrapAlignment())\r
     {\r
 \r