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:
parent
4db83cf4f1
commit
dc523305ef
1 changed files with 10 additions and 17 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue