From 7de9893f18da714b8da06ca15e878bcf33b36c69 Mon Sep 17 00:00:00 2001 From: anna Date: Mon, 4 Mar 2013 18:18:16 +0100 Subject: [PATCH] EA-44504 - assert: DockablePopupManager.createToolWindow --- .../documentation/DockablePopupManager.java | 17 +++++++++++++++-- .../documentation/DocumentationManager.java | 15 +++------------ .../byteCodeViewer/ShowByteCodeAction.java | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java index bd254bbfb9af..1c81a500bf6e 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java @@ -70,8 +70,21 @@ public abstract class DockablePopupManager { protected abstract String getTitle(PsiElement element); protected abstract String getToolwindowId(); - - + public Content recreateToolWindow(PsiElement element, PsiElement originalElement) { + if (myToolWindow == null) { + createToolWindow(element, originalElement); + return null; + } + + final Content content = myToolWindow.getContentManager().getSelectedContent(); + if (content == null || !myToolWindow.isVisible()) { + restorePopupBehavior(); + createToolWindow(element, originalElement); + return null; + } + return content; + } + public void createToolWindow(final PsiElement element, PsiElement originalElement) { assert myToolWindow == null; diff --git a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java index 9f55baad59b1..0b6578c54635 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java @@ -190,21 +190,12 @@ public class DocumentationManager extends DockablePopupManager pinCallback = new Processor() { @Override public boolean process(JBPopup popup) { - codeViewerManager.createToolWindow(targetElement, targetElement); + codeViewerManager.recreateToolWindow(targetElement, targetElement); popup.cancel(); return false; }