Merge branch 'develop' into feature/JAL-2611
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 1c01108..c81ac2f 100755 (executable)
@@ -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;
+    }
+  }
 }