AccessToken () { boolean[] insideOnChosen = { true }; //noinspection resource AccessToken token = ProhibitAWTEvents.startFiltered("Popup.handleSelect", e -> { if (!(e instanceof WindowEvent && e.getID() == WindowEvent.WINDOW_ACTIVATED && ((WindowEvent)e).getWindow() instanceof JDialog)) { return null; } Throwable throwable = new Throwable("Showing dialogs in PopupStep.onChosen can result in focus issues. " + "Please put the handler into BaseStep.doFinalStep or PopupStep.getFinalRunnable.\n " + e); // give the secondary event loop in `actionSystem.impl.Utils.expandActionGroupImpl` // a chance to quit in case the focus event is created right inside `dispatchEvents` code ApplicationManager.getApplication().invokeLater(() -> { LOG.error(throwable); }, ModalityState.any(), __ -> !insideOnChosen[0]); return null; }); return new AccessToken() { @Override public void finish() { insideOnChosen[0] = false; token.finish(); } }; }