diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java index 97b887a0cdae..961426976063 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java @@ -261,7 +261,7 @@ public class CommitChangeListDialog extends DialogWrapper implements CheckinProj myBrowser = browser; myBrowserExtender = browser; } else { - MultipleChangeListBrowser browser = new MultipleChangeListBrowser(project, changeLists, changes, initialSelection, true, true, + MultipleChangeListBrowser browser = new MultipleChangeListBrowser(project, changeLists, changes, getDisposable(), initialSelection, true, true, new Runnable() { public void run() { updateWarning(); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java index 7d827639f464..4f04f85f4dc7 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleChangeListBrowser.java @@ -23,6 +23,7 @@ package com.intellij.openapi.vcs.changes.ui; import com.intellij.icons.AllIcons; +import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.AnActionListener; import com.intellij.openapi.application.ApplicationManager; @@ -58,15 +59,18 @@ public class MultipleChangeListBrowser extends ChangesBrowser { private Map myChangeListsMap; private final ChangesBrowserExtender myExtender; + private final Disposable myParentDisposable; private final Runnable myRebuildListListener; // todo terrible constructor public MultipleChangeListBrowser(final Project project, final List changeLists, final List changes, + Disposable parentDisposable, final ChangeList initialListSelection, final boolean capableOfExcludingChanges, final boolean highlightProblems, final Runnable rebuildListListener, @Nullable final Runnable inclusionListener, final AnAction... additionalActions) { super(project, changeLists, changes, initialListSelection, capableOfExcludingChanges, highlightProblems, inclusionListener, MyUseCase.LOCAL_CHANGES, null); + myParentDisposable = parentDisposable; myRebuildListListener = rebuildListListener; myChangeListChooser = new ChangeListChooser(changeLists); @@ -215,7 +219,7 @@ public class MultipleChangeListBrowser extends ChangesBrowser { rebuildList(); } } - }); + }, myParentDisposable); moveAction.registerCustomShortcutSet(CommonShortcuts.getMove(), myViewer); toolBarGroup.add(moveAction); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/RollbackChangesDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/RollbackChangesDialog.java index 80d92b8c0ce1..4aee9d3c9561 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/RollbackChangesDialog.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/RollbackChangesDialog.java @@ -104,7 +104,7 @@ public class RollbackChangesDialog extends DialogWrapper { } } }; - myBrowser = new MultipleChangeListBrowser(project, changeLists, changes, null, true, true, myListChangeListener, myListChangeListener); + myBrowser = new MultipleChangeListBrowser(project, changeLists, changes, getDisposable(), null, true, true, myListChangeListener, myListChangeListener); myOperationName = operationNameByChanges(project, changes); setOKButtonText(myOperationName);