@Nullable public static Component getOwner(@Nullable Component c) { if (c == null) return null; final Window wnd = SwingUtilities.getWindowAncestor(c); if (wnd instanceof JWindow) { final JRootPane root = ((JWindow) wnd).getRootPane(); final JBPopup popup = (JBPopup) root.getClientProperty(JBPopup.KEY); if (popup == null) return c; final Component owner = popup.getOwner(); if (owner == null) return c; return getOwner(owner); } else { return c; } }