void (@NotNull AnActionEvent e) { Project project = e.getProject(); if (project == null) return; RelativePoint popupPoint = getPreferredPopupPoint(e); ApplicationManager.getApplication().executeOnPooledThread(() -> { List<OpenShellAction> shells = detectShells(); List<OpenShellAction> wsl = listOpenWslShellActions(); List<AnAction> customActions = OpenPredefinedTerminalActionProvider.collectAll(project); ApplicationManager.getApplication().invokeLater(() -> { ListPopup popup = createPopup(shells, wsl, customActions, e.getDataContext()); if (popupPoint != null) { popup.show(popupPoint); } else { popup.showInFocusCenter(); } InputEvent inputEvent = e.getInputEvent(); if (inputEvent != null && inputEvent.getComponent() != null) { PopupUtil.setPopupToggleComponent(popup, inputEvent.getComponent()); } }, project.getDisposed()); }); }