fastPaint flag added
[jalview.git] / src / jalview / gui / SeqCanvas.java
index ff9488e..c6ecff2 100755 (executable)
@@ -16,7 +16,7 @@ public class SeqCanvas extends JPanel
 \r
     AlignViewport     av;\r
 \r
-    public boolean paintFlag = false;\r
+ //   public boolean paintFlag = false;\r
 \r
     boolean showScores = false;\r
     boolean displaySearch = false;\r
@@ -25,6 +25,8 @@ public class SeqCanvas extends JPanel
     int chunkHeight;\r
     int chunkWidth;\r
 \r
+    boolean fastPaint = false;\r
+\r
 \r
     public SeqCanvas(AlignViewport av)\r
     {\r
@@ -58,12 +60,6 @@ public void fastPaint(int horizontal, int vertical)
     if (horizontal == 0 && vertical == 0)\r
       return;\r
 \r
-    if (img == null || paintFlag)\r
-    {\r
-      repaint();\r
-      return;\r
-    }\r
-\r
     gg.copyArea(0, 0, imgWidth, imgHeight, -horizontal * av.charWidth,\r
                 -vertical * av.charHeight);\r
 \r
@@ -90,7 +86,9 @@ public void fastPaint(int horizontal, int vertical)
     drawPanel(gg, sr, er, ss, es, sr, ss, 0);\r
 \r
     gg.translate( -transX, -transY);\r
-    getGraphics().drawImage(img, 0, 0, this);\r
+\r
+    fastPaint = true;\r
+    repaint();\r
 \r
 }\r
 \r
@@ -107,6 +105,16 @@ public void fastPaint(int horizontal, int vertical)
 \r
   public void paintComponent(Graphics g)\r
   {\r
+    g.setColor(Color.white);\r
+    g.fillRect(0, 0, getWidth(), getHeight());\r
+\r
+    if (fastPaint)\r
+    {\r
+      g.drawImage(img, 0, 0, this);\r
+      fastPaint = false;\r
+      return;\r
+    }\r
+\r
     // this draws the whole of the alignment\r
       imgWidth  = getWidth();\r
       imgHeight = getHeight();\r
@@ -118,7 +126,6 @@ public void fastPaint(int horizontal, int vertical)
       gg  = (Graphics2D)img.getGraphics();\r
       gg.setFont(av.getFont());\r
       gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);\r
-      paintFlag = false;\r
 \r
       gg.setColor(Color.white);\r
       gg.fillRect(0,0,imgWidth,imgHeight);\r
@@ -135,9 +142,7 @@ public void fastPaint(int horizontal, int vertical)
     else\r
       drawPanel(gg, av.startRes, av.endRes, av.startSeq, av.endSeq, av.startRes, av.startSeq, 0);\r
 \r
-    g.setColor(Color.white);\r
-    g.fillRect(0,0,getWidth(),getHeight());\r
-    g.drawImage(img,0,0,this);\r
+    g.drawImage(img, 0, 0, this);\r
 \r
   }\r
 \r
@@ -259,7 +264,7 @@ public void fastPaint(int horizontal, int vertical)
 \r
             if (bottom == -1 &&\r
                 !group.sequences.contains(av.alignment.getSequenceAt(i + 1)))\r
-              bottom = sy + av.charHeight - 1;\r
+              bottom = sy + av.charHeight -1;\r
 \r
             if (!inGroup)\r
             {\r
@@ -364,7 +369,6 @@ public void fastPaint(int horizontal, int vertical)
 \r
     searchResults = results;\r
 \r
-    paintFlag = true;\r
     repaint();\r
   }\r
 \r