From dc523305ef715aca02dfcb024e774e3c656b9d48 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Tue, 27 Dec 2011 14:48:33 -0500 Subject: [PATCH] bug 367559: Double source folder in Make Targets View - handle deletions in more robust way --- .../cdt/make/ui/MakeContentProvider.java | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java index c1351570803..1369e186c19 100644 --- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java +++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/MakeContentProvider.java @@ -333,26 +333,19 @@ public class MakeContentProvider implements ITreeContentProvider, IMakeTargetLis // Handle removed children. Issue one update for all removals. affectedChildren = delta.getAffectedChildren(IResourceDelta.REMOVED); if (affectedChildren.length > 0) { - final ArrayList affected = new ArrayList(affectedChildren.length); for (int i = 0; i < affectedChildren.length; i++) { if (affectedChildren[i].getResource().getType() == IResource.FOLDER) { - affected.add(affectedChildren[i].getResource()); - } - } - if (!affected.isEmpty()) { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed()) - return; - - if (CCorePlugin.showSourceRootsAtTopOfProject()) { - // that will refresh equal TargetSourceContainer from the tree - viewer.refresh(new TargetSourceContainer(new CSourceEntry((IFolder) resource, null, 0))); + Display.getDefault().asyncExec(new Runnable() { + @Override + public void run() { + if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed()) + return; + // refresh the whole view as deletion may cause parent nodes to get filtered out + viewer.refresh(); } - viewer.refresh(resource); - } - }); + }); + return; + } } }