From bca1bf262ba6e0f07efc038cfff85dbc9970250a Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Tue, 21 Feb 2012 22:47:31 +0300 Subject: [PATCH] IDEA-81554 Database console loses toolbar after detaching and reattaching tab --- .../com/intellij/execution/console/LanguageConsoleImpl.java | 2 +- .../openapi/fileEditor/impl/EditorTabbedContainer.java | 4 ++++ .../openapi/fileEditor/impl/FileEditorManagerImpl.java | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java index 18f0c22cd82c..27fccd08fbd0 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java @@ -551,7 +551,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { @Override public void fileClosed(FileEditorManager source, VirtualFile file) { if (file != myFile.getVirtualFile()) return; - if (myUiUpdateRunnable != null) { + if (myUiUpdateRunnable != null && !Boolean.TRUE.equals(file.getUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN))) { ApplicationManager.getApplication().runReadAction(myUiUpdateRunnable); } } diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java index b24815f3f014..858f449c4a1f 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorTabbedContainer.java @@ -585,6 +585,7 @@ final class EditorTabbedContainer implements Disposable, CloseAction.CloseTarget public void dragOutFinished(MouseEvent event, TabInfo source) { boolean copy = event.isMetaDown() || (!SystemInfo.isMac && event.isControlDown()); if (!copy) { + myFile.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, Boolean.TRUE); FileEditorManagerEx.getInstanceEx(myProject).closeFile(myFile, myWindow); } else { @@ -592,6 +593,9 @@ final class EditorTabbedContainer implements Disposable, CloseAction.CloseTarget } mySession.process(event); + if (!copy) { + myFile.putUserData(FileEditorManagerImpl.CLOSING_TO_REOPEN, null); + } myFile = null; mySession = null; diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java index 96dcc2ca08ae..3d9fb9834528 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileEditorManagerImpl.java @@ -96,6 +96,7 @@ public class FileEditorManagerImpl extends FileEditorManagerEx implements Projec private static final FileEditor[] EMPTY_EDITOR_ARRAY = {}; private static final FileEditorProvider[] EMPTY_PROVIDER_ARRAY = {}; + public static final Key CLOSING_TO_REOPEN = Key.create("CLOSING_TO_REOPEN"); private volatile JPanel myPanels; private EditorsSplitters mySplitters;