From 51f22095fdfb11a88b582e389268100ff0755811 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Tue, 21 Oct 2014 20:00:32 +0400 Subject: [PATCH] better fix for c33da06 --- .../actions/BaseNavigateToSourceAction.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/actions/BaseNavigateToSourceAction.java b/platform/platform-impl/src/com/intellij/ide/actions/BaseNavigateToSourceAction.java index a54e7543a183..acc7d9bcd5d5 100644 --- a/platform/platform-impl/src/com/intellij/ide/actions/BaseNavigateToSourceAction.java +++ b/platform/platform-impl/src/com/intellij/ide/actions/BaseNavigateToSourceAction.java @@ -37,25 +37,22 @@ public abstract class BaseNavigateToSourceAction extends AnAction implements Dum } - public void update(AnActionEvent event) { - DataContext dataContext = event.getDataContext(); - final Navigatable target = findTargetForUpdate(dataContext); + public void update(AnActionEvent e) { + boolean inPopup = ActionPlaces.isPopupPlace(e.getPlace()); + Navigatable target = findTargetForUpdate(e.getDataContext()); boolean enabled = target != null; - if (ActionPlaces.isPopupPlace(event.getPlace())) { - event.getPresentation().setVisible(enabled); - if (!(this instanceof OpenModuleSettingsAction) && OpenModuleSettingsAction.isModuleInProjectViewPopup(event)) { - event.getPresentation().setVisible(false); - return; - } - } - else { - event.getPresentation().setEnabled(enabled); + if (inPopup && !(this instanceof OpenModuleSettingsAction) && OpenModuleSettingsAction.isModuleInProjectViewPopup(e)) { + e.getPresentation().setVisible(false); + return; } //as myFocusEditor is always ignored - Main Menu|View always contains 2 actions with the same name and actually same behaviour - if(!myFocusEditor) event.getPresentation().setVisible(false); + e.getPresentation().setVisible((enabled || !inPopup) && + (myFocusEditor || !(target instanceof NavigatableWithText))); + e.getPresentation().setEnabled(enabled); + String navigateActionText = myFocusEditor && target instanceof NavigatableWithText? ((NavigatableWithText)target).getNavigateActionText(true) : null; - event.getPresentation().setText(navigateActionText == null ? getTemplatePresentation().getText() : navigateActionText); + e.getPresentation().setText(navigateActionText == null ? getTemplatePresentation().getText() : navigateActionText); } @Nullable