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()); Display.getDefault().asyncExec(new Runnable() {
} @Override
} public void run() {
if (!affected.isEmpty()) { if (viewer == null || viewer.getControl() == null || viewer.getControl().isDisposed())
Display.getDefault().asyncExec(new Runnable() { return;
@Override // refresh the whole view as deletion may cause parent nodes to get filtered out
public void run() { viewer.refresh();
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)));
} }
viewer.refresh(resource); });
} return;
}); }
} }
} }