1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

bug 367559: Double source folder in Make Targets View - handle deletions

in more robust way
This commit is contained in:
Andrew Gvozdev 2011-12-27 14:48:33 -05:00
parent 4db83cf4f1
commit dc523305ef

View file

@ -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<IResource> affected = new ArrayList<IResource>(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;
}
}
}