From d98986512a86d2b82617687506ca72173df2b1ce Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 29 Feb 2016 23:55:14 +0300 Subject: [PATCH] DBE-1242 Having focus in "Database Console" and pressing "close tab" with CMD-w always closes SQL console instead --- .../execution/ui/layout/impl/RunnerContentUi.java | 12 ++++++++++++ .../execution/ui/layout/impl/RunnerLayoutUiImpl.java | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java index 575eb7953a38..9f154ec6a5f4 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerContentUi.java @@ -22,6 +22,7 @@ import com.intellij.execution.ui.layout.actions.CloseViewAction; import com.intellij.execution.ui.layout.actions.MinimizeViewAction; import com.intellij.execution.ui.layout.actions.RestoreViewAction; import com.intellij.ide.DataManager; +import com.intellij.ide.actions.CloseAction; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.project.Project; @@ -1400,6 +1401,17 @@ public class RunnerContentUi implements ContentUI, Disposable, CellTransform.Fac if (KEY.is(dataId)) { return RunnerContentUi.this; } + else if (CloseAction.CloseTarget.KEY.is(dataId)) { + Content content = getContentManager().getSelectedContent(); + if (content != null && content.getManager().canCloseContents() && content.isCloseable()) { + return new CloseAction.CloseTarget() { + @Override + public void close() { + content.getManager().removeContent(content, true, true, true); + } + }; + } + } ContentManager originalContentManager = myOriginal == null ? null : myOriginal.getContentManager(); JComponent originalContentComponent = originalContentManager == null ? null : originalContentManager.getComponent(); diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java index 746cd1aa0189..c0d545751ddb 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/RunnerLayoutUiImpl.java @@ -64,7 +64,7 @@ public class RunnerLayoutUiImpl implements Disposable.Parent, RunnerLayoutUi, La runnerTitle + " - " + sessionName); Disposer.register(this, myContentUI); - myViewsContentManager = getContentFactory().createContentManager(myContentUI.getContentUI(), false, project); + myViewsContentManager = getContentFactory().createContentManager(myContentUI.getContentUI(), true, project); myViewsContentManager.addDataProvider(this); Disposer.register(this, myViewsContentManager); }