From 0dd83518ef62d1937e7f81093a3d15258d73b5dd Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Mon, 5 Dec 2011 16:27:21 +0300 Subject: [PATCH] restore dialog size with respect to location, to fit to the right screen --- .../openapi/ui/impl/DialogWrapperPeerImpl.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java index 5e09f19f128f..5379d23a379f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java @@ -560,10 +560,14 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra } public void setSize(int width, int height) { - Point location = getLocation(); + _setSizeForLocation(width, height, null); + } + + private void _setSizeForLocation(int width, int height, @Nullable Point initial) { + Point location = initial != null ? initial : getLocation(); Rectangle rect = new Rectangle(location.x, location.y, width, height); ScreenUtil.fitToScreen(rect); - if (location.x != rect.x || location.y != rect.y) { + if (initial != null || location.x != rect.x || location.y != rect.y) { setLocation(rect.x, rect.y); } @@ -609,7 +613,7 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra Dimension size = DimensionService.getInstance().getSize(myDimensionServiceKey, projectGuess); if (size != null) { myInitialSize = (Dimension)size.clone(); - setSize(myInitialSize); + _setSizeForLocation(myInitialSize.width, myInitialSize.height, location); } }