tag 615251 + patch thanks On Wed, 09 Mar 2011 20:16:42 +0100, gregor herrmann wrote:
> After talking to upstream and some more tests conducted by Tony, we > can now say that this glitch only happens with the 2.6 releases and > is fixed in 2.7 beta. Upstream has kindly backported the fix for 2.6, I'm attaching it here just in case someone wants to build their own packages. Cheers, gregor -- .''`. http://info.comodo.priv.at/ -- GPG key IDs: 0x8649AA06, 0x00F3CFE4 : :' : Debian GNU/Linux user, admin, & developer - http://www.debian.org/ `. `' Member of VIBE!AT & SPI, fellow of Free Software Foundation Europe `- NP: Larimar: Sorry
Index: JabRef.java =================================================================== --- JabRef.java (revision 3340) +++ JabRef.java (revision 3466) @@ -750,17 +755,19 @@ if (Globals.prefs.getBoolean("autoSave")) Globals.startAutoSaveManager(jrf); - //Util.pr(": Showing frame"); - jrf.setVisible(true); // If we are set to remember the window location, we also remember the maximised // state. This needs to be set after the window has been made visible, so we // do it here: - if (Globals.prefs.getBoolean("rememberWindowLocation") && - Globals.prefs.getBoolean("windowMaximised")) { - jrf.setExtendedState(JFrame.MAXIMIZED_BOTH); - } + if (Globals.prefs.getBoolean("windowMaximised")) { + jrf.setExtendedState(JFrame.MAXIMIZED_BOTH); + } + jrf.setVisible(true); + if (Globals.prefs.getBoolean("windowMaximised")) { + jrf.setExtendedState(JFrame.MAXIMIZED_BOTH); + } + // TEST TEST TEST TEST TEST TEST startSidePanePlugins(jrf); Index: JabRefFrame.java =================================================================== --- JabRefFrame.java (revision 3340) +++ JabRefFrame.java (revision 3466) @@ -416,53 +416,51 @@ initActions(); - // Fixes occasional Window malbehaviour in Linux - setBounds(0, 0, (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(), - (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight() ); - setExtendedState(JFrame.MAXIMIZED_BOTH); + + setBounds(GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()); + if ( !prefs.getBoolean("windowMaximised") ) { + + int sizeX = prefs.getInt("sizeX"); + int sizeY = prefs.getInt("sizeY"); + int posX = prefs.getInt("posX"); + int posY = prefs.getInt("posY"); - if (Globals.prefs.getBoolean("rememberWindowLocation")) { - - int sizeX = prefs.getInt("sizeX"); - int sizeY = prefs.getInt("sizeY"); - int posX = prefs.getInt("posX"); - int posY = prefs.getInt("posY"); - - // - // Fix for [ 1738920 ] Windows Position in Multi-Monitor environment - // - // Do not put a window outside the screen if the preference values are wrong. - // - // Useful reference: http://www.exampledepot.com/egs/java.awt/screen_ScreenSize.html?l=rel - // googled on forums.java.sun.com graphicsenvironment second screen java - // - if (GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices().length == 1){ + // + // Fix for [ 1738920 ] Windows Position in Multi-Monitor environment + // + // Do not put a window outside the screen if the preference values are wrong. + // + // Useful reference: http://www.exampledepot.com/egs/java.awt/screen_ScreenSize.html?l=rel + // googled on forums.java.sun.com graphicsenvironment second screen java + // + if (GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices().length == 1){ - Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); + Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); - int height = (int) dim.getHeight(); - int width = (int) dim.getWidth(); + int height = (int) dim.getHeight(); + int width = (int) dim.getWidth(); - if (posX + sizeX > width) { - if (sizeX <= width) { - posX = width - sizeX; - } else { - posX = prefs.getIntDefault("posX"); - sizeX = prefs.getIntDefault("sizeX"); - } + if (posX + sizeX > width) { + if (sizeX <= width) { + posX = width - sizeX; + } else { + posX = prefs.getIntDefault("posX"); + sizeX = prefs.getIntDefault("sizeX"); } + } - if (posY + sizeY > height) { - if (sizeY <= height) { - posY = height - sizeY; - } else { - posY = prefs.getIntDefault("posY"); - sizeY = prefs.getIntDefault("sizeY"); - } + if (posY + sizeY > height) { + if (sizeY <= height) { + posY = height - sizeY; + } else { + posY = prefs.getIntDefault("posY"); + sizeY = prefs.getIntDefault("sizeY"); } } - setBounds(posX, posY, sizeX, sizeY); } + setBounds(posX, posY, sizeX, sizeY); + } + tabbedPane.setBorder(null); tabbedPane.setForeground(GUIGlobals.inActiveTabbed); @@ -699,8 +697,7 @@ prefs.putInt("sizeY", JabRefFrame.this.getSize().height); // prefs.putBoolean("windowMaximised", (getExtendedState()&MAXIMIZED_BOTH)>0); prefs.putBoolean("windowMaximised", (getExtendedState() == Frame.MAXIMIZED_BOTH)); - prefs.putBoolean("rememberWindowLocation", !Globals.prefs.getBoolean("windowMaximised")); - + prefs.putBoolean("searchPanelVisible", sidePaneManager.isComponentVisible("search")); // Store divider location for side pane: int width = contentPane.getDividerLocation();
signature.asc
Description: Digital signature