From bdd50ff1d2d9c3257b65d9b879e99ccf84ee2aa3 Mon Sep 17 00:00:00 2001 From: Dmitry Batrak Date: Fri, 29 Jan 2016 19:22:12 +0300 Subject: [PATCH] proper data context fallback for non-project-related editors (probably fixes DBE-2299) --- .../actionSystem/CaretSpecificDataContext.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/CaretSpecificDataContext.java b/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/CaretSpecificDataContext.java index e53cc48e4d5a..091352792000 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/CaretSpecificDataContext.java +++ b/platform/platform-api/src/com/intellij/openapi/editor/actionSystem/CaretSpecificDataContext.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,11 +37,14 @@ public class CaretSpecificDataContext extends DataContextWrapper { @Override public Object getData(@NonNls String dataId) { Project project = (Project)super.getData(CommonDataKeys.PROJECT.getName()); - if (project == null) { - return null; + if (project != null) { + FileEditorManager fm = FileEditorManager.getInstance(project); + if (fm != null) { + Object data = fm.getData(dataId, myCaret.getEditor(), myCaret); + if (data != null) return data; + } } - FileEditorManager fm = FileEditorManager.getInstance(project); - Object data = fm == null ? null : fm.getData(dataId, myCaret.getEditor(), myCaret); - return data == null ? super.getData(dataId) : data; + if (CommonDataKeys.CARET.is(dataId)) return myCaret; + return super.getData(dataId); } }