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 d860400f9948..d1442cd3cbb2 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DockablePopupManager.java @@ -150,7 +150,7 @@ public abstract class DockablePopupManager { if (myAutoUpdateRequest == null) { myAutoUpdateRequest = new Runnable() { public void run() { - if (myProject.isDisposed()) return; + if (!myAutoUpdateDocumentation || myProject.isDisposed()) return; AsyncResult asyncResult = DataManager.getInstance().getDataContextFromFocus(); DataContext dataContext = asyncResult.getResult(); 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 b9e140735b1c..10c7d3820d4a 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/documentation/DocumentationManager.java @@ -175,6 +175,10 @@ public class DocumentationManager extends DockablePopupManager ref = myDocumentationManager; - if (ref == null) { - return; - } - - DocumentationManager docManager = ref.get(); + DocumentationManager docManager = getDocManager(); if (docManager == null) { return; } @@ -240,6 +236,27 @@ public class QuickDocOnMouseOverManager { myDocumentationManager = null; } + private void allowUpdateFromContext(boolean allow) { + DocumentationManager documentationManager = getDocManager(); + if (documentationManager != null) { + documentationManager.setAllowContentUpdateFromContext(allow); + } + } + + @Nullable + private DocumentationManager getDocManager() { + WeakReference ref = myDocumentationManager; + if (ref == null) { + return null; + } + + DocumentationManager docManager = ref.get(); + if (docManager == null) { + return null; + } + return docManager; + } + private static class DelayedQuickDocInfo { @NotNull public final DocumentationManager docManager; @@ -333,6 +350,7 @@ public class QuickDocOnMouseOverManager { private class MyCaretListener implements CaretListener { @Override public void caretPositionChanged(CaretEvent e) { + allowUpdateFromContext(true); closeQuickDocIfPossible(); } }