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; }