[EGIT PATCH 6/9] Change GitHistoryPage to listen on any repository.
This makes listening simpler.
---
.../egit/ui/internal/history/GitHistoryPage.java | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java
index 418f3b6..e3ff8d4 100644
--- a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java
+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/history/GitHistoryPage.java
@@ -234,11 +234,16 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener {
attachContextMenu(commentViewer.getControl());
attachContextMenu(fileViewer.getControl());
layout();
+
+ Repository.addAnyRepositoryChangedListener(this);
}
private Runnable refschangedRunnable;
public void refsChanged(final RefsChangedEvent e) {
+ if (e.getRepository() != db)
+ return;
+
if (getControl().isDisposed())
return;
@@ -480,6 +485,7 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener {
}
public void dispose() {
+ Repository.removeAnyRepositoryChangedListener(this);
cancelRefreshJob();
if (popupMgr != null) {
for (final IContributionItem i : popupMgr.getItems()) {
@@ -539,9 +545,6 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener {
revObjectSelectionProvider.setActiveRepository(null);
cancelRefreshJob();
- if (db != null)
- db.removeRepositoryChangedListener(this);
-
if (graph == null)
return false;
@@ -570,8 +573,6 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener {
if (db == null)
return false;
- db.addRepositoryChangedListener(this);
-
final AnyObjectId headId;
try {
headId = db.resolve("HEAD");
--
1.5.6.2.220.g44701