void (final Project project, final SvnFileRevision revision, final VirtualFile file) { if (ModalityState.nonModal().equals(ModalityState.current())) { ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(ChangesViewContentManager.TOOLWINDOW_ID); final ContentManager contentManager = toolWindow.getContentManager(); final MyDialog dialog = new MyDialog(project, revision, file); // TODO: Temporary memory leak fix - rewrite this part not to create dialog if only createCenterPanel(), but not show() is invoked Disposer.register(project, dialog.getDisposable()); Content content = ContentFactory.getInstance().createContent(dialog.createCenterPanel(), SvnBundle.message("merge.source.details.title", (file == null) ? revision.getURL().toDecodedString() : file.getName(), revision.getRevisionNumber().asString()), true); ContentsUtil.addOrReplaceContent(contentManager, content, true); toolWindow.activate(null); } else { new MyDialog(project, revision, file).show(); } }