diff options
author | Bernard Normier <bernard@zeroc.com> | 2016-09-26 14:31:57 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2016-09-26 14:31:57 -0400 |
commit | e4e1dff872e42618b71d709dfa565826a9c91737 (patch) | |
tree | 1e3f1560d7034a56f6d167e911f8c8cca4c0868e /java | |
parent | ICE-7382 - System Ruby build error on macOS (diff) | |
download | ice-e4e1dff872e42618b71d709dfa565826a9c91737.tar.bz2 ice-e4e1dff872e42618b71d709dfa565826a9c91737.tar.xz ice-e4e1dff872e42618b71d709dfa565826a9c91737.zip |
Fixed restore of saved maximized window
Diffstat (limited to 'java')
-rw-r--r-- | java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java b/java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java index f2e9418905e..c2c7cf21111 100644 --- a/java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java +++ b/java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java @@ -137,16 +137,19 @@ public class Utils static public void storeWindowBounds(java.awt.Window window, java.util.prefs.Preferences prefs) { + if(window instanceof java.awt.Frame) + { + java.awt.Frame frame = (java.awt.Frame)window; + boolean maximized = frame.getExtendedState() == java.awt.Frame.MAXIMIZED_BOTH; + prefs.putBoolean("maximized", maximized); + } + Rectangle rect = window.getBounds(); + prefs.putInt("x", rect.x); prefs.putInt("y", rect.y); prefs.putInt("width", rect.width); prefs.putInt("height", rect.height); - - if(window instanceof java.awt.Frame) - { - prefs.putBoolean("maximized", ((java.awt.Frame)window).getExtendedState() == java.awt.Frame.MAXIMIZED_BOTH); - } } static public java.util.prefs.Preferences @@ -173,6 +176,7 @@ public class Utils int y = prefs.getInt("y", 0); int width = prefs.getInt("width", 0); int height = prefs.getInt("height", 0); + boolean maximized = prefs.getBoolean("maximized", false); Rectangle visibleBounds = new Rectangle(); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); @@ -181,14 +185,19 @@ public class Utils { visibleBounds.add(s.getDefaultConfiguration().getBounds()); } - locationVisible = visibleBounds.contains(x, y); + locationVisible = visibleBounds.contains(x, y) || (maximized && visibleBounds.contains(x + 20, y + 20)); if(locationVisible) { - window.setBounds(new Rectangle(x, y, width, height)); - if(prefs.getBoolean("maximized", false)) + if(maximized) + { + java.awt.Frame frame = (java.awt.Frame)window; + frame.setBounds(new Rectangle(x + 20, y + 20, width, height)); + frame.setExtendedState(java.awt.Frame.MAXIMIZED_BOTH); + } + else { - ((java.awt.Frame)window).setExtendedState(java.awt.Frame.MAXIMIZED_BOTH); + window.setBounds(new Rectangle(x, y, width, height)); } } else |