resizeAgain flag set if user resizes whilst image is being prepared
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 62f8ca9..6c968a2 100755 (executable)
@@ -198,6 +198,7 @@ public class OverviewPanel extends JPanel implements Runnable
     {\r
         if (resizing)\r
         {\r
+            resizeAgain = true;\r
             return;\r
         }\r
 \r
@@ -208,6 +209,10 @@ public class OverviewPanel extends JPanel implements Runnable
         repaint();\r
     }\r
 \r
+    // This is set true if the user resizes whilst\r
+    // the overview is being calculated\r
+    boolean resizeAgain = false;\r
+\r
     /**\r
      * DOCUMENT ME!\r
      */\r
@@ -265,6 +270,9 @@ public class OverviewPanel extends JPanel implements Runnable
             for (int sRes = 0, chunkx = 0; sRes < alwidth;\r
                     sRes += maxSize, chunkx++)\r
             {\r
+                if(resizeAgain)\r
+                  break;\r
+\r
                 eSeq = 0;\r
                 eRes += maxSize;\r
 \r
@@ -303,7 +311,7 @@ public class OverviewPanel extends JPanel implements Runnable
 \r
                     mg.drawImage(block, blockx, blocky, blockx + blockw,\r
                         blocky + blockh, 0, 0, block.getWidth(),\r
-                        block.getHeight(), this);\r
+                        block.getHeight(), null);\r
 \r
                     block = null;\r
                 }\r
@@ -315,10 +323,18 @@ public class OverviewPanel extends JPanel implements Runnable
                 "Out of memory when trying to calculate the overview window image!");\r
         }\r
 \r
+        System.gc();\r
+\r
         av.setRenderGaps(oldRenderGaps);\r
         resizing = false;\r
 \r
         setBoxPosition();\r
+\r
+        if(resizeAgain)\r
+        {\r
+          resizeAgain = false;\r
+          updateOverviewImage();\r
+        }\r
     }\r
 \r
     /**\r