JAL-1900 JAL-1625 disable iconify button for internal frames on Macs
authorJim Procter <jprocter@issues.jalview.org>
Fri, 2 Oct 2015 11:37:48 +0000 (12:37 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Fri, 2 Oct 2015 11:37:48 +0000 (12:37 +0100)
help/html/releases.html
src/jalview/gui/Desktop.java

index 229be28..bbbae7a 100755 (executable)
@@ -79,7 +79,7 @@
             <li>Incorrect warning about deleting all data when deleting selected columns</li>
             <li>Patch to build system for shipping properly signed JNLP templates for webstart launch</li>
             <li>EMBL-PDBe fetcher/viewer dialogs do not offer unreleased structures for download or viewing</li>
-            <li></li>
+            <li>Disabled 'minimise' button on Jalview windows running on OSX to workaround redraw hang bug</li>
             </ul>
       <em>Applet</em><ul>
             <li>Reorder sequences mirrored in cDNA/Protein split frame</li>
index d03e3f2..3f92334 100644 (file)
@@ -33,6 +33,7 @@ import jalview.jbgui.GStructureViewer;
 import jalview.structure.StructureSelectionManager;
 import jalview.util.ImageMaker;
 import jalview.util.MessageManager;
+import jalview.util.Platform;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.ws.params.ParamManager;
 
@@ -305,6 +306,10 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     boolean showjconsole = jalview.bin.Cache.getDefault(
             "SHOW_JAVA_CONSOLE", false);
     desktop = new MyDesktopPane(selmemusage);
+    if (Platform.isAMac())
+    {
+      desktop.setDoubleBuffered(false);
+    }
     showMemusage.setSelected(selmemusage);
     desktop.setBackground(Color.white);
     getContentPane().setLayout(new BorderLayout());
@@ -750,8 +755,13 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     frame.setResizable(resizable);
     frame.setMaximizable(resizable);
     frame.setIconifiable(resizable);
-    frame.setFrameIcon(null);
-
+    if (Platform.isAMac())
+    {
+      frame.setIconifiable(false);
+      frame.setFrameIcon(null);
+      // frame.setDesktopIcon(null);
+      frame.setDoubleBuffered(false);
+    }
     if (frame.getX() < 1 && frame.getY() < 1)
     {
       frame.setLocation(xOffset * openFrameCount, yOffset