diff --git a/src/vs/workbench/browser/parts/views/treeView.ts b/src/vs/workbench/browser/parts/views/treeView.ts index 029fc406e0357e2ec23202f32af9986d7a2750de..1d72da717c1c0668663af6f675f77ae77bffb2eb 100644 --- a/src/vs/workbench/browser/parts/views/treeView.ts +++ b/src/vs/workbench/browser/parts/views/treeView.ts @@ -379,6 +379,10 @@ class Aligner extends Disposable { } private hasToAlignWithTwisty(): boolean { + if (this.hasParentHasIcon()) { + return false; + } + const fileIconTheme = this.themeService.getFileIconTheme(); if (!(fileIconTheme.hasFileIcons && !fileIconTheme.hasFolderIcons)) { return false; @@ -407,6 +411,21 @@ class Aligner extends Disposable { const parent: ITreeItem = this.tree.getNavigator(this.node).parent() || this.tree.getInput(); return parent.children; } + + private hasParentHasIcon(): boolean { + const parent = this.tree.getNavigator(this.node).parent() || this.tree.getInput(); + const icon = this.themeService.getTheme().type === LIGHT ? parent.icon : parent.iconDark; + if (icon) { + return true; + } + if (parent.resourceUri) { + const fileIconTheme = this.themeService.getFileIconTheme(); + if (fileIconTheme.hasFileIcons && fileIconTheme.hasFolderIcons) { + return true; + } + } + return false; + } } class TreeController extends WorkbenchTreeController {