From 4513e4365be27a67c7d4c87506244e39ef0d73f0 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Thu, 16 Jul 2015 18:05:22 +0300 Subject: [PATCH] EA-69779 - NPE: AbstractPopup.getCenterOf --- .../src/com/intellij/ui/popup/AbstractPopup.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java index e31a364a80bf..fccabb956710 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/AbstractPopup.java @@ -416,10 +416,14 @@ public class AbstractPopup implements JBPopup { public static Point getCenterOf(final Component aContainer, final JComponent content) { final JComponent component = getTargetComponent(aContainer); - Point containerScreenPoint = component.getVisibleRect().getLocation(); - SwingUtilities.convertPointToScreen(containerScreenPoint, aContainer); + Rectangle visibleBounds = component != null + ? component.getVisibleRect() + : new Rectangle(aContainer.getSize()); - return UIUtil.getCenterPoint(new Rectangle(containerScreenPoint, component.getVisibleRect().getSize()), content.getPreferredSize()); + Point containerScreenPoint = visibleBounds.getLocation(); + SwingUtilities.convertPointToScreen(containerScreenPoint, aContainer); + visibleBounds.setLocation(containerScreenPoint); + return UIUtil.getCenterPoint(visibleBounds, content.getPreferredSize()); } @Override