summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-09-26 14:31:57 -0400
committerBernard Normier <bernard@zeroc.com>2016-09-26 14:31:57 -0400
commite4e1dff872e42618b71d709dfa565826a9c91737 (patch)
tree1e3f1560d7034a56f6d167e911f8c8cca4c0868e /java
parentICE-7382 - System Ruby build error on macOS (diff)
downloadice-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.java27
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