From 37b5e892ff69bc93518f56ce2b2eaf3af1e12f21 Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Mon, 30 Nov 2015 13:45:37 +0300 Subject: [PATCH] IDEA-114135 Fixed disposing "Version Control" tool window tabs registered using "changesViewContent" extension point - set correct disposer for created "Content" instances --- .../vcs/changes/ui/ChangesViewContentManager.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewContentManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewContentManager.java index fbde51eb3117..9de6bd398d20 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewContentManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewContentManager.java @@ -162,9 +162,6 @@ public class ChangesViewContentManager extends AbstractProjectComponent implemen addExtensionTab(ep); } else if (predicateResult.equals(Boolean.FALSE) && epContent != null) { - if (!(epContent.getComponent() instanceof ContentStub)) { - ep.getInstance(myProject).disposeContent(); - } myContentManager.removeContent(epContent, true); } } @@ -277,12 +274,15 @@ public class ChangesViewContentManager extends AbstractProjectComponent implemen Content content = event.getContent(); if (content.getComponent() instanceof ContentStub) { ChangesViewContentEP ep = ((ContentStub) content.getComponent()).getEP(); - ChangesViewContentProvider provider = ep.getInstance(myProject); + final ChangesViewContentProvider provider = ep.getInstance(myProject); final JComponent contentComponent = provider.initContent(); content.setComponent(contentComponent); - if (contentComponent instanceof Disposable) { - content.setDisposer((Disposable) contentComponent); - } + content.setDisposer(new Disposable() { + @Override + public void dispose() { + provider.disposeContent(); + } + }); } } }