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();

Attachment: signature.asc
Description: Digital signature

Reply via email to