Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Wolf2020-04-07 07:47:27 +0000
committerThomas Wolf2020-04-07 07:47:27 +0000
commit13c766569e8b5431829d6b5cc32a0eb7c152b3f9 (patch)
tree72c6cae7733c590605633c97e699628b05966cab /org.eclipse.egit.ui/src/org/eclipse/egit
parente77d3b3b65004a33a5eadb63124cce6ebf5e7ebc (diff)
downloadegit-13c766569e8b5431829d6b5cc32a0eb7c152b3f9.tar.gz
egit-13c766569e8b5431829d6b5cc32a0eb7c152b3f9.tar.xz
egit-13c766569e8b5431829d6b5cc32a0eb7c152b3f9.zip
[repo view] tag filtering: ensure status bar update
Always re-set the selection after filtering to make sure the label and the status bar update correctly. Also guard against the tree having been disposed. Change-Id: I4301844979722bffd874e5ba1a079aa76747bad3 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse/egit')
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
index 0f85c4db69..f5f10a432e 100644
--- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
+++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/repository/RepositoriesView.java
@@ -142,6 +142,7 @@ import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.team.ui.history.IHistoryView;
@@ -175,7 +176,6 @@ import org.eclipse.ui.part.IShowInTargetList;
import org.eclipse.ui.part.MultiPageEditorPart;
import org.eclipse.ui.part.ShowInContext;
import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.progress.WorkbenchJob;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheet;
@@ -756,7 +756,8 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
// Pop up search field with initial pattern set; update pattern and
// request a refresh of the node on each change with a small delay.
AtomicReference<String> currentPattern = new AtomicReference<>();
- UIJob refresher = new UIJob(UIText.RepositoriesView_FilterJob) {
+ WorkbenchJob refresher = new WorkbenchJob(
+ UIText.RepositoriesView_FilterJob) {
@Override
public boolean belongsTo(Object family) {
@@ -831,7 +832,6 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
container.setVisible(false);
container.dispose();
viewer.getTree().setFocus();
- viewer.setSelection(new StructuredSelection(node));
}
}
});
@@ -848,8 +848,12 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
private void filter(RepositoriesCommonViewer viewer,
FilterableNode filterNode, String filter) {
FilterCache.INSTANCE.set(filterNode, filter);
+ Tree tree = viewer.getTree();
+ if (tree == null || tree.isDisposed()) {
+ return;
+ }
try {
- viewer.getTree().setRedraw(false);
+ tree.setRedraw(false);
TreeItem item = viewer.getItem(filterNode);
Object currentNode = item.getData();
if (filterNode != currentNode && filterNode.equals(currentNode)) {
@@ -859,8 +863,10 @@ public class RepositoriesView extends CommonNavigator implements IShowInSource,
}
viewer.refresh(filterNode);
} finally {
- viewer.getTree().setRedraw(true);
+ tree.setRedraw(true);
}
+ // Force an update of the status bar
+ viewer.setSelection(viewer.getSelection());
}
private void executeOpenCommandWithConfirmation(RepositoryTreeNode element,

Back to the top