X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FOverviewPanel.java;fp=src%2Fjalview%2Fgui%2FOverviewPanel.java;h=c81ac2f5f280c287b7d33c63662baa6c23820ac2;hb=4a9a2fc8a1b1a66b21e66429083f27a6fc8541b9;hp=1c01108765ccb0c86b4c7fbde9c89e796563a89c;hpb=30f552046feaba47955d5ffdcec6d0fc67a7e13b;p=jalview.git diff --git a/src/jalview/gui/OverviewPanel.java b/src/jalview/gui/OverviewPanel.java index 1c01108..c81ac2f 100755 --- a/src/jalview/gui/OverviewPanel.java +++ b/src/jalview/gui/OverviewPanel.java @@ -110,8 +110,7 @@ public class OverviewPanel extends JPanel implements Runnable, @Override public void mouseDragged(MouseEvent evt) { - if (!SwingUtilities.isRightMouseButton(evt) - && !av.getWrapAlignment()) + if (!SwingUtilities.isRightMouseButton(evt)) { if (draggingBox) { @@ -127,7 +126,6 @@ public class OverviewPanel extends JPanel implements Runnable, .getAlignment().getHiddenSequences(), av.getAlignment() .getHiddenColumns()); } - } } @@ -159,7 +157,8 @@ public class OverviewPanel extends JPanel implements Runnable, showPopupMenu(evt); } } - else if (!av.getWrapAlignment()) + else + // if (!av.getWrapAlignment()) { if (!od.isPositionInBox(evt.getX(), evt.getY())) { @@ -197,8 +196,6 @@ public class OverviewPanel extends JPanel implements Runnable, showPopupMenu(evt); } } - - }); updateOverviewImage(); @@ -258,6 +255,14 @@ public class OverviewPanel extends JPanel implements Runnable, */ public void updateOverviewImage() { + if (oviewCanvas == null) + { + /* + * panel has been disposed + */ + return; + } + if ((getWidth() > 0) && (getHeight() > 0)) { od.setWidth(getWidth()); @@ -274,7 +279,6 @@ public class OverviewPanel extends JPanel implements Runnable, Thread thread = new Thread(this); thread.start(); repaint(); - } @Override @@ -304,4 +308,21 @@ public class OverviewPanel extends JPanel implements Runnable, { setBoxPosition(); } + + /** + * Removes this object as a property change listener, and nulls references + */ + protected void dispose() + { + try + { + av.getRanges().removePropertyChangeListener(this); + } finally + { + av = null; + oviewCanvas = null; + ap = null; + od = null; + } + } }