Merge branch 'bug/JAL-1988_JAL-3772_improved_quit_handling' into merge/JAL-1988_JAL...
[jalview.git] / src / jalview / gui / Desktop.java
index 13253c3..c120d90 100644 (file)
@@ -105,6 +105,7 @@ import jalview.api.AlignmentViewPanel;
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
 import jalview.gui.ImageExporter.ImageWriterI;
+import jalview.gui.QuitHandler.QResponse;
 import jalview.io.BackupFiles;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
@@ -118,8 +119,6 @@ import jalview.io.JalviewFileChooser;
 import jalview.io.JalviewFileView;
 import jalview.jbgui.GSplitFrame;
 import jalview.jbgui.GStructureViewer;
-import jalview.jbgui.QuitHandler;
-import jalview.jbgui.QuitHandler.QResponse;
 import jalview.project.Jalview2XML;
 import jalview.structure.StructureSelectionManager;
 import jalview.urls.IdOrgSettings;
@@ -192,6 +191,14 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public static HashMap<String, FileWriter> savingFiles = new HashMap<String, FileWriter>();
 
+  private static int DRAG_MODE = JDesktopPane.OUTLINE_DRAG_MODE;
+
+  public static void setLiveDragMode(boolean b)
+  {
+    DRAG_MODE = b ? JDesktopPane.LIVE_DRAG_MODE
+            : JDesktopPane.OUTLINE_DRAG_MODE;
+  }
+
   private JalviewChangeSupport changeSupport = new JalviewChangeSupport();
 
   public static boolean nosplash = false;
@@ -488,7 +495,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     }
 
     getContentPane().add(desktop, BorderLayout.CENTER);
-    desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
+    desktop.setDragMode(DRAG_MODE);
 
     // This line prevents Windows Look&Feel resizing all new windows to maximum
     // if previous window was maximised
@@ -1350,7 +1357,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public QuitHandler.QResponse desktopQuit(boolean ui, boolean disposeFlag)
   {
-    final Callable<QuitHandler.QResponse> doDesktopQuit = () -> {
+    final Callable<Void> doDesktopQuit = () -> {
       Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
       Cache.setProperty("SCREENGEOMETRY_WIDTH", screen.width + "");
       Cache.setProperty("SCREENGEOMETRY_HEIGHT", screen.height + "");
@@ -1396,13 +1403,9 @@ public class Desktop extends jalview.jbgui.GDesktop
         instance.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
         // instance.dispose();
       }
-      jalview.bin.Console.debug("**** BEFORE quit");
-      jalview.bin.Console.debug("**** QuitHandler.gotQuitResponse="
-              + QuitHandler.gotQuitResponse());
       instance.quit();
-      jalview.bin.Console.debug("**** AFTER quit");
 
-      return QuitHandler.gotQuitResponse();
+      return null; // Void
     };
 
     return QuitHandler.getQuitResponse(ui, doDesktopQuit, doDesktopQuit,
@@ -1827,7 +1830,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     saveState_actionPerformed(true);
   }
 
-  private void setProjectFile(File choice)
+  protected void setProjectFile(File choice)
   {
     this.projectFile = choice;
   }