diff --git a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java index d3f693ba3b4b..7ae8d39b8ab5 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/DataManagerImpl.java @@ -305,6 +305,17 @@ public class DataManagerImpl extends DataManager { return dataContext instanceof UserDataHolder ? ((UserDataHolder)dataContext).getUserData(dataKey) : null; } + @Nullable + public static Editor validateEditor(Editor editor) { + Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); + if (focusOwner instanceof JComponent) { + final JComponent jComponent = (JComponent)focusOwner; + if (jComponent.getClientProperty("AuxEditorComponent") != null) return null; // Hack for EditorSearchComponent + } + + return editor; + } + private static class NullResult { public static final NullResult INSTANCE = new NullResult(); } @@ -383,17 +394,6 @@ public class DataManagerImpl extends DataManager { return ((DataManagerImpl)DataManager.getInstance()).getData(dataId, component); } - @Nullable - private static Editor validateEditor(Editor editor) { - Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); - if (focusOwner instanceof JComponent) { - final JComponent jComponent = (JComponent)focusOwner; - if (jComponent.getClientProperty("AuxEditorComponent") != null) return null; // Hack for EditorSearchComponent - } - - return editor; - } - @NonNls public String toString() { return "component=" + myRef.get(); diff --git a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CopyProviderRule.java b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CopyProviderRule.java index b30850e393ac..15ef17258e97 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CopyProviderRule.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CopyProviderRule.java @@ -15,15 +15,15 @@ */ package com.intellij.ide.impl.dataRules; +import com.intellij.ide.impl.DataManagerImpl; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataProvider; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.EditorEx; public class CopyProviderRule implements GetDataRule { public Object getData(DataProvider dataProvider) { - final Editor editor = CommonDataKeys.EDITOR.getData(dataProvider); + final Editor editor = DataManagerImpl.validateEditor(CommonDataKeys.EDITOR.getData(dataProvider)); if (editor instanceof EditorEx) { return ((EditorEx) editor).getCopyProvider(); } diff --git a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CutProviderRule.java b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CutProviderRule.java index 7470f6551c0c..c550c69a8cfb 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CutProviderRule.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/CutProviderRule.java @@ -15,15 +15,15 @@ */ package com.intellij.ide.impl.dataRules; +import com.intellij.ide.impl.DataManagerImpl; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataProvider; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.EditorEx; public class CutProviderRule implements GetDataRule { public Object getData(DataProvider dataProvider) { - final Editor editor = CommonDataKeys.EDITOR.getData(dataProvider); + final Editor editor = DataManagerImpl.validateEditor(CommonDataKeys.EDITOR.getData(dataProvider)); if (editor instanceof EditorEx) { return ((EditorEx) editor).getCutProvider(); } diff --git a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/PasteProviderRule.java b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/PasteProviderRule.java index a70b8553f917..40aa7a13c36b 100644 --- a/platform/platform-impl/src/com/intellij/ide/impl/dataRules/PasteProviderRule.java +++ b/platform/platform-impl/src/com/intellij/ide/impl/dataRules/PasteProviderRule.java @@ -15,15 +15,15 @@ */ package com.intellij.ide.impl.dataRules; +import com.intellij.ide.impl.DataManagerImpl; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.DataProvider; -import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.editor.ex.EditorEx; public class PasteProviderRule implements GetDataRule { public Object getData(DataProvider dataProvider) { - final Editor editor = CommonDataKeys.EDITOR.getData(dataProvider); + final Editor editor = DataManagerImpl.validateEditor(CommonDataKeys.EDITOR.getData(dataProvider)); if (editor instanceof EditorEx) { return ((EditorEx) editor).getPasteProvider(); }