From 815e80f1e871adcbd94ccd749816ee12dff26262 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 26 Sep 2012 21:00:23 +0200 Subject: [PATCH] Tolerate missing resources --- .../util/src/com/intellij/util/ui/UIUtil.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/platform/util/src/com/intellij/util/ui/UIUtil.java b/platform/util/src/com/intellij/util/ui/UIUtil.java index fd986c366181..fbe23b9c0155 100644 --- a/platform/util/src/com/intellij/util/ui/UIUtil.java +++ b/platform/util/src/com/intellij/util/ui/UIUtil.java @@ -2456,17 +2456,19 @@ public class UIUtil { @Nullable public static Color getColorAt(final Icon icon, final int x, final int y) { - BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); - icon.paintIcon(null, image.getGraphics(), 0, 0); - final int[] pixels = new int[1]; - final PixelGrabber pixelGrabber = - new PixelGrabber(image, x, y, 1, 1, pixels, 0, 1); - try { - pixelGrabber.grabPixels(); - return new Color(pixels[0]); - } - catch (InterruptedException ignore) { + if (0 <= x && x < icon.getIconWidth() && 0 <= y && y < icon.getIconHeight()) { + final BufferedImage image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); + icon.paintIcon(null, image.getGraphics(), 0, 0); + + final int[] pixels = new int[1]; + final PixelGrabber pixelGrabber = new PixelGrabber(image, x, y, 1, 1, pixels, 0, 1); + try { + pixelGrabber.grabPixels(); + return new Color(pixels[0]); + } + catch (InterruptedException ignored) { } } + return null; }