IDEA-139316 Copy Action in the Console search field does not work properly

This commit is contained in:
Dmitry Batrak
2015-04-21 11:11:44 +03:00
parent c0a12ce86a
commit cc23d3a898
4 changed files with 17 additions and 17 deletions
@@ -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();
@@ -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();
}
@@ -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();
}
@@ -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();
}