diff --git a/platform/platform-impl/src/com/intellij/util/ContentUtilEx.java b/platform/platform-impl/src/com/intellij/util/ContentUtilEx.java index acec06ed9ac5..3f3ad3e5d6cb 100644 --- a/platform/platform-impl/src/com/intellij/util/ContentUtilEx.java +++ b/platform/platform-impl/src/com/intellij/util/ContentUtilEx.java @@ -126,12 +126,20 @@ public class ContentUtilEx extends ContentsUtil { JComponent component = tabbedContent.getComponent(); tabbedContent.removeContent(component); contentManager.setSelectedContent(tabbedContent, true, true); + dispose(component); return; } } contentManager.removeContent(content, true); } + private static void dispose(@NotNull JComponent component) { + Object disposable = component.getClientProperty(DISPOSABLE_KEY); + if (disposable != null && disposable instanceof Disposable) { + Disposer.dispose((Disposable)disposable); + } + } + @NotNull public static String getFullName(@NotNull String groupPrefix, @NotNull String tabName) { return getFullPrefix(groupPrefix) + tabName;