void (InputEvent e) { if (myState == State.CANCEL || myState == State.DISPOSE) { return; } debugState("cancel popup", State.SHOWN); myState = State.CANCEL; if (isDisposed()) return; if (LOG.isTraceEnabled()) LOG.trace(new Exception("cancel popup stack trace")); if (myPopup != null) { if (!canClose()) { debugState("cannot cancel popup", State.CANCEL); myState = State.SHOWN; return; } storeDimensionSize(); if (myUseDimServiceForXYLocation) { final JRootPane root = myComponent.getRootPane(); if (root != null) { Point location = getLocationOnScreen(root.getParent()); if (location != null) { storeLocation(fixLocateByContent(location, true)); } } } if (e instanceof MouseEvent) { IdeEventQueue.getInstance().blockNextEvents((MouseEvent)e); } myPopup.hide(false); modalEntitiesWhenShown = null; if (ApplicationManager.getApplication() != null) { StackingPopupDispatcher.getInstance().onPopupHidden(this); } disposePopup(); } myListeners.forEach(listener -> listener.onClosed(new LightweightWindowEvent(this, myOk))); Disposer.dispose(this, false); if (myProjectDisposable != null) { Disposer.dispose(myProjectDisposable); } }