JAL-1625 ensure we don’t regress on JAL-20 - we always use the DefaultDesktopManager... patch/JAL-2732
authorJim Procter <jprocter@issues.jalview.org>
Fri, 15 Sep 2017 15:05:12 +0000 (16:05 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Fri, 15 Sep 2017 15:05:12 +0000 (16:05 +0100)
src/jalview/gui/Desktop.java
src/jalview/util/Platform.java

index 83d1e3e..1f8983f 100644 (file)
@@ -41,6 +41,7 @@ import jalview.structure.StructureSelectionManager;
 import jalview.urls.IdOrgSettings;
 import jalview.util.ImageMaker;
 import jalview.util.MessageManager;
+import jalview.util.Platform;
 import jalview.util.UrlConstants;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.ws.params.ParamManager;
@@ -94,6 +95,7 @@ import java.util.concurrent.Semaphore;
 import javax.swing.AbstractAction;
 import javax.swing.Box;
 import javax.swing.BoxLayout;
+import javax.swing.DefaultDesktopManager;
 import javax.swing.DesktopManager;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
@@ -357,7 +359,9 @@ public class Desktop extends jalview.jbgui.GDesktop
     // This line prevents Windows Look&Feel resizing all new windows to maximum
     // if previous window was maximised
     desktop.setDesktopManager(
-            new MyDesktopManager(desktop.getDesktopManager()));
+            new MyDesktopManager(
+                    (Platform.isWindows() ? new DefaultDesktopManager()
+                            : desktop.getDesktopManager())));
 
     Rectangle dims = getLastKnownDimensions("");
     if (dims != null)
index 3adba81..2c74609 100644 (file)
@@ -30,7 +30,7 @@ import java.awt.event.MouseEvent;
  */
 public class Platform
 {
-  private static Boolean isAMac = null;
+  private static Boolean isAMac = null, isWindows = null;
 
   private static Boolean isHeadless = null;
 
@@ -45,11 +45,26 @@ public class Platform
     {
       isAMac = System.getProperty("os.name").indexOf("Mac") > -1;
     }
+
     return isAMac.booleanValue();
 
   }
 
   /**
+   * Check if we are on a Microsoft plaform...
+   * 
+   * @return true if we have to cope with another platform variation
+   */
+  public static boolean isWindows()
+  {
+    if (isWindows == null)
+    {
+      isWindows = System.getProperty("os.name").indexOf("Win") > -1;
+    }
+    return isWindows.booleanValue();
+  }
+
+  /**
    * 
    * @return true if we are running in non-interactive no UI mode
    */