diff: "Jump to Source" - consume shortcut if action is disabled
authorAleksey Pivovarov <AMPivovarov@gmail.com>
Mon, 24 Oct 2016 15:19:55 +0000 (18:19 +0300)
committerAleksey Pivovarov <AMPivovarov@gmail.com>
Mon, 24 Oct 2016 15:50:38 +0000 (18:50 +0300)
platform/diff-impl/src/com/intellij/diff/actions/impl/OpenInEditorAction.java

index b6ea4bbeda8154d92ababc0cedaa24a18366f45d..59f84900277b4537cb14d3c2ceebdc4de97bea11 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.diff.tools.util.DiffDataKeys;
 import com.intellij.diff.util.DiffUserDataKeys;
 import com.intellij.diff.util.DiffUtil;
 import com.intellij.ide.actions.EditSourceAction;
+import com.intellij.openapi.actionSystem.ActionPlaces;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.CommonDataKeys;
 import com.intellij.openapi.actionSystem.DataKey;
@@ -43,6 +44,11 @@ public class OpenInEditorAction extends EditSourceAction implements DumbAware {
 
   @Override
   public void update(@NotNull AnActionEvent e) {
+    if (!ActionPlaces.isToolbarPlace(e.getPlace())) {
+      e.getPresentation().setEnabledAndVisible(true);
+      return;
+    }
+
     DiffRequest request = e.getData(DiffDataKeys.DIFF_REQUEST);
     DiffContext context = e.getData(DiffDataKeys.DIFF_CONTEXT);
 
@@ -70,9 +76,11 @@ public class OpenInEditorAction extends EditSourceAction implements DumbAware {
   @Override
   public void actionPerformed(@NotNull AnActionEvent e) {
     Project project = e.getProject();
-    assert project != null;
+    if (project == null) return;
+
+    Navigatable navigatable = e.getData(CommonDataKeys.NAVIGATABLE);
+    if (navigatable == null) return;
 
-    Navigatable navigatable = e.getRequiredData(CommonDataKeys.NAVIGATABLE);
     openEditor(project, navigatable);
   }