void (@NotNull BuildDescriptor buildDescriptor, @NotNull Content content) { Map<Object, CloseListener> closeListenerMap = content.getUserData(CONTENT_CLOSE_LISTENERS); if (closeListenerMap != null) { CloseListener closeListener = closeListenerMap.remove(buildDescriptor.getId()); if (closeListener != null) { Disposer.dispose(closeListener); if (closeListenerMap.isEmpty()) { content.putUserData(CONTENT_CLOSE_LISTENERS, null); } } } Pair<Icon, AtomicInteger> pair = liveContentsMap.get(content); if (pair != null && pair.second.decrementAndGet() == 0) { content.setIcon(pair.first); if (pair.first == null) { content.putUserData(ToolWindow.SHOW_CONTENT_ICON, Boolean.FALSE); } liveContentsMap.remove(content); } invokeLaterIfNeeded(() -> { if (liveContentsMap.isEmpty()) { getOrCreateToolWindow().setIcon(AllIcons.Toolwindows.ToolWindowBuild); } }); }