JAL-2183 defensive check for openFrameCount < 0 (shouldn't happen but
[jalview.git] / src / jalview / gui / Desktop.java
index 45a52ee..3cc2c14 100644 (file)
@@ -825,7 +825,15 @@ public class Desktop extends jalview.jbgui.GDesktop implements
               javax.swing.event.InternalFrameEvent evt)
       {
         PaintRefresher.RemoveComponent(frame);
-        openFrameCount--;
+
+        /*
+         * defensive check to prevent frames being
+         * added half off the window
+         */
+        if (openFrameCount > 0)
+        {
+          openFrameCount--;
+        }
         windowMenu.remove(menuItem);
         JInternalFrame itf = desktop.getSelectedFrame();
         if (itf != null)
@@ -1184,6 +1192,8 @@ public class Desktop extends jalview.jbgui.GDesktop implements
 
     if (groovyConsole != null)
     {
+      // suppress a possible repeat prompt to save script
+      groovyConsole.setDirty(false);
       groovyConsole.exit();
     }
     System.exit(0);
@@ -1804,7 +1814,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
    * 
    * @param af
    */
-  public void explodeViews(AlignFrame af)
+  public static void explodeViews(AlignFrame af)
   {
     int size = af.alignPanels.size();
     if (size < 2)