diff options
Diffstat (limited to 'core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java')
-rw-r--r-- | core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java index 6a6d33412e1..18b0f0e1521 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/BaseCElementContentProvider.java @@ -329,19 +329,16 @@ public class BaseCElementContentProvider implements ITreeContentProvider { return NO_CHILDREN; List list= new ArrayList(); - ISourceRoot[] roots = cproject.getSourceRoots(); - // filter out source roots that correspond to projects and - // replace them with the package fragments directly - for (int i= 0; i < roots.length; i++) { - ISourceRoot root= roots[i]; - if (isProjectSourceRoot(root)) { - Object[] children= root.getChildren(); - for (int k= 0; k < children.length; k++) { - list.add(children[k]); - } - } else { - list.add(root); - } + ICElement[] children = cproject.getChildren(); + for (int i= 0; i < children.length; i++) { + ICElement child = children[i]; + if (child instanceof ISourceRoot && child.getResource().getType() == IResource.PROJECT) { + // Was a source root at the project, get the children of this element + ICElement[] c2 = ((ISourceRoot)child).getChildren(); + for (int k = 0; k < c2.length; ++k) + list.add(c2[k]); + } else + list.add(child); } Object[] objects = list.toArray(); |