/** * * @return null if we should ignore <Esc> for window closing */ @Nullable protected ActionListener createCancelAction() { return new ActionListener() { @Override public void actionPerformed(ActionEvent e) { MenuSelectionManager menuSelectionManager = MenuSelectionManager.defaultManager(); MenuElement[] selectedPath = menuSelectionManager.getSelectedPath(); if (selectedPath.length > 0) { // hide popup menu if any menuSelectionManager.clearSelectedPath(); } else { if (ApplicationManager.getApplication() == null) { doCancelAction(e); return; } final StackingPopupDispatcher popupDispatcher = StackingPopupDispatcher.getInstance(); if (popupDispatcher != null && !popupDispatcher.isPopupFocused()) { doCancelAction(e); } } } }; }
@Override public void update(AnActionEvent e) { Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); e.getPresentation().setEnabled(false); if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) { return; } if (StackingPopupDispatcher.getInstance().isPopupFocused()) return; JTree tree = UIUtil.getParentOfType(JTree.class, focusOwner); JTable table = UIUtil.getParentOfType(JTable.class, focusOwner); if (tree != null || table != null) { if (hasNoEditingTreesOrTablesUpward(focusOwner)) { e.getPresentation().setEnabled(true); } } }
@Override public void update(AnActionEvent e) { Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); e.getPresentation().setEnabled(false); if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) { return; } if (StackingPopupDispatcher.getInstance().isPopupFocused()) return; if (focusOwner instanceof JTree) { JTree tree = (JTree)focusOwner; if (!tree.isEditing()) { e.getPresentation().setEnabled(true); } } else if (focusOwner instanceof JTable) { JTable table = (JTable)focusOwner; if (!table.isEditing()) { e.getPresentation().setEnabled(true); } } }
@Override public void update(@Nonnull AnActionEvent e) { Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); e.getPresentation().setEnabled(false); if (focusOwner instanceof JComponent && SpeedSearchBase.hasActiveSpeedSearch((JComponent)focusOwner)) { return; } if (StackingPopupDispatcher.getInstance().isPopupFocused()) return; JTree tree = UIUtil.getParentOfType(JTree.class, focusOwner); JTable table = UIUtil.getParentOfType(JTable.class, focusOwner); if (tree != null || table != null) { if (hasNoEditingTreesOrTablesUpward(focusOwner)) { e.getPresentation().setEnabled(true); } } }
private void hidePopupsIfNeeded() { if (!SystemInfo.isMac) return; StackingPopupDispatcher.getInstance().hidePersistentPopups(); myDisposeActions.add(new Runnable() { @Override public void run() { StackingPopupDispatcher.getInstance().restorePersistentPopups(); } }); }
private void hidePopupsIfNeeded() { if (!SystemInfo.isMac) return; StackingPopupDispatcher.getInstance().hidePersistentPopups(); Disposer.register(myDialog, new Disposable() { @Override public void dispose() { StackingPopupDispatcher.getInstance().restorePersistentPopups(); } }); }
private void hidePopupsIfNeeded() { if (!SystemInfo.isMac) return; final StackingPopupDispatcher stackingPopupDispatcher = StackingPopupDispatcher.getInstance(); stackingPopupDispatcher.hidePersistentPopups(); Disposer.register(myDialog, new Disposable() { @Override public void dispose() { stackingPopupDispatcher.restorePersistentPopups(); } }); }
private void hidePopupsIfNeeded() { if (!SystemInfo.isMac) return; StackingPopupDispatcher.getInstance().hidePersistentPopups(); myDisposeActions.add(() -> StackingPopupDispatcher.getInstance().restorePersistentPopups()); }