From 0a6c0b022ba2ffb0ea05fc015c19803e82e31bf9 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Thu, 25 Dec 2014 22:44:52 +0300 Subject: [PATCH] optimization --- .../src/com/intellij/ui/ScreenUtil.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ui/ScreenUtil.java b/platform/platform-api/src/com/intellij/ui/ScreenUtil.java index 8b97f964aeaf..505e78e2a09f 100644 --- a/platform/platform-api/src/com/intellij/ui/ScreenUtil.java +++ b/platform/platform-api/src/com/intellij/ui/ScreenUtil.java @@ -69,10 +69,16 @@ public class ScreenUtil { } public static Shape getAllScreensShape() { - Rectangle[] rectangles = getAllScreenBounds(); + GraphicsDevice[] devices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); + if (devices.length == 0) { + return new Rectangle(); + } + if (devices.length == 1) { + return getScreenRectangle(devices[0]); + } Area area = new Area(); - for (Rectangle rectangle : rectangles) { - area.add(new Area(rectangle)); + for (GraphicsDevice device : devices) { + area.add(new Area(getScreenRectangle(device))); } return area; } @@ -84,6 +90,12 @@ public class ScreenUtil { */ public static Rectangle getAllScreensRectangle() { GraphicsDevice[] devices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); + if (devices.length == 0) { + return new Rectangle(); + } + if (devices.length == 1) { + return getScreenRectangle(devices[0]); + } int minX = 0; int maxX = 0; int minY = 0;