X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=97c6a2024e1a45800a4fb3e895e9566baf049ce2;hb=7e129811d6ff01074428462284dffc2a6c2395a4;hp=642a872b95b80ec7601890ead2fda27a011cfd1b;hpb=9b9afd73c1bad3a4a098f3bc3185cf9315a9b1a8;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index 642a872..97c6a20 100755 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -113,10 +113,12 @@ public class Desktop extends jalview.jbgui.GDesktop SplashScreen splash = new SplashScreen(frame, image); frame.setContentPane(splash); frame.setLayer(JLayeredPane.PALETTE_LAYER); - addInternalFrame(frame, "", 750, 160, false); frame.setLocation((int) ((getWidth() - 750) / 2), (int) ((getHeight() - 160) / 2)); - discoverer=new jalview.ws.Discoverer(); // Only gets started if gui is displayed. + + addInternalFrame(frame, "", 750, 160, false); + + discoverer=new jalview.ws.Discoverer(); // Only gets started if gui is displayed. } /** @@ -127,7 +129,7 @@ public class Desktop extends jalview.jbgui.GDesktop * @param w DOCUMENT ME! * @param h DOCUMENT ME! */ - public static void addInternalFrame(final JInternalFrame frame, + public static synchronized void addInternalFrame(final JInternalFrame frame, String title, int w, int h) { addInternalFrame(frame, title, w, h, true); @@ -142,13 +144,15 @@ public class Desktop extends jalview.jbgui.GDesktop * @param h DOCUMENT ME! * @param resizable DOCUMENT ME! */ - public static void addInternalFrame(final JInternalFrame frame, + public static synchronized void addInternalFrame(final JInternalFrame frame, String title, int w, int h, boolean resizable) { frame.setTitle(title); - frame.setSize(w, h); - + if(frame.getWidth()<1 || frame.getHeight()<1) + { + frame.setSize(w, h); + } // THIS IS A PUBLIC STATIC METHOD, SO IT MAY BE CALLED EVEN IN // A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN // IF JALVIEW IS RUNNING HEADLESS @@ -160,24 +164,23 @@ public class Desktop extends jalview.jbgui.GDesktop } - desktop.add(frame); openFrameCount++; - try - { - frame.setSelected(true); - } - catch (java.beans.PropertyVetoException e) - { - } - + frame.setVisible(true); frame.setClosable(true); frame.setResizable(resizable); frame.setMaximizable(resizable); frame.setIconifiable(resizable); frame.setFrameIcon(null); - frame.setLocation(xOffset * openFrameCount, yOffset * openFrameCount); - frame.toFront(); + + if (frame.getX()<1 && frame.getY()<1) + { + frame.setLocation(xOffset * openFrameCount, yOffset * ((openFrameCount-1)%10)+yOffset); + } + + desktop.add(frame); + frame.toFront(); + final JMenuItem menuItem = new JMenuItem(title); frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter() @@ -202,13 +205,11 @@ public class Desktop extends jalview.jbgui.GDesktop } catch (java.beans.PropertyVetoException ex) { - } - ; + } } }); - frame.setVisible(true); windowMenu.add(menuItem); }