From e95cbdd2a38be86df296d57be1a7161c1f9214ab Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 18 Jan 2012 21:02:12 +0300 Subject: [PATCH] IDEA-79900 Escape in presence of active lookup should not close injected fragment editor --- .../intelliLang/inject/quickedit/QuickEditAction.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/quickedit/QuickEditAction.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/quickedit/QuickEditAction.java index 4193899721cb..f8a59b7f6921 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/quickedit/QuickEditAction.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/inject/quickedit/QuickEditAction.java @@ -17,6 +17,7 @@ package org.intellij.plugins.intelliLang.inject.quickedit; import com.intellij.codeInsight.intention.IntentionAction; import com.intellij.codeInsight.intention.LowPriorityAction; +import com.intellij.codeInsight.lookup.LookupManager; import com.intellij.injected.editor.DocumentWindow; import com.intellij.lang.Language; import com.intellij.lang.injection.InjectedLanguageManager; @@ -24,6 +25,7 @@ import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonShortcuts; +import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.*; @@ -204,6 +206,12 @@ public class QuickEditAction implements IntentionAction, LowPriorityAction { public void editorCreated(EditorFactoryEvent event) { if (event.getEditor().getDocument() == myNewDocument) { new AnAction() { + @Override + public void update(AnActionEvent e) { + Editor editor = PlatformDataKeys.EDITOR.getData(e.getDataContext()); + e.getPresentation().setEnabled(editor != null && LookupManager.getActiveLookup(editor) == null); + } + @Override public void actionPerformed(AnActionEvent e) { closeEditor();