From 27b299821e542ddd590e3191682017c093fec14d Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Fri, 26 Aug 2005 12:48:03 +0000 Subject: [PATCH] resizeAgain flag set if user resizes whilst image is being prepared --- src/jalview/appletgui/OverviewPanel.java | 36 +++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/jalview/appletgui/OverviewPanel.java b/src/jalview/appletgui/OverviewPanel.java index d02892b..93ff487 100755 --- a/src/jalview/appletgui/OverviewPanel.java +++ b/src/jalview/appletgui/OverviewPanel.java @@ -164,19 +164,28 @@ public class OverviewPanel } } + /** + * DOCUMENT ME! + */ public void updateOverviewImage() { - if (resizing) - { - return; - } + if (resizing) + { + resizeAgain = true; + return; + } - resizing = true; - Thread thread = new Thread(this); - thread.start(); - repaint(); + resizing = true; + + Thread thread = new Thread(this); + thread.start(); + repaint(); } + // This is set true if the user resizes whilst + // the overview is being calculated + boolean resizeAgain = false; + public void run() { miniMe = null; @@ -230,6 +239,9 @@ public class OverviewPanel for (int sSeq = 0, chunky = 0; sSeq < alheight; sSeq += maxSize, chunky++) { + if(resizeAgain) + break; + eSeq += maxSize; if (eSeq > alheight) { @@ -271,10 +283,18 @@ public class OverviewPanel "Out of memory when trying to calculate the overview window image!"); } + System.gc(); + av.setRenderGaps(oldRenderGaps); resizing = false; setBoxPosition(); + + if(resizeAgain) + { + resizeAgain = false; + updateOverviewImage(); + } } public void setBoxPosition() -- 1.7.10.2