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. // Handle removed children. Issue one update for all removals.
affectedChildren = delta.getAffectedChildren(IResourceDelta.REMOVED); affectedChildren = delta.getAffectedChildren(IResourceDelta.REMOVED);
if (affectedChildren.length > 0) { if (affectedChildren.length > 0) {
final ArrayList<IResource> affected = new ArrayList<IResource>(affectedChildren.length);
for (int i = 0; i < affectedChildren.length; i++) { for (int i = 0; i < affectedChildren.length; i++) {
if (affectedChildren[i].getResource().getType() == IResource.FOLDER) { if (affectedChildren[i].getResource().getType() == IResource.FOLDER) {
affected.add(affectedChildren[i].getResource());
}
}
if (!affected.isEmpty()) {
Display.getDefault().asyncExec(new Runnable() { Display.getDefault().asyncExec(new Runnable() {
@Override @Override
public void run() { public void run() {
if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed()) if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed())
return; return;
// refresh the whole view as deletion may cause parent nodes to get filtered out
if (CCorePlugin.showSourceRootsAtTopOfProject()) { viewer.refresh();
// that will refresh equal TargetSourceContainer from the tree
viewer.refresh(new TargetSourceContainer(new CSourceEntry((IFolder) resource, null, 0)));
}
viewer.refresh(resource);
} }
}); });
return;
}
} }
} }