AbstractPopup () { if (myPopupReference == null) return null; AbstractPopup hint = myPopupReference.get(); if (hint == null || !hint.isVisible()) { if (hint != null) { // hint's window might've been hidden by AWT without notifying us // dispose to remove the popup from IDE hierarchy and avoid leaking components hint.cancel(); } myPopupReference = null; myCurrentEditor = null; myContext = null; return null; } return hint; }