From d6f5abaf084c2af73512d27ad2063e11f49a23ca Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 30 Aug 2018 12:28:45 +0200 Subject: [PATCH] Fix #54315 --- src/vs/base/parts/tree/browser/treeModel.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/vs/base/parts/tree/browser/treeModel.ts b/src/vs/base/parts/tree/browser/treeModel.ts index 38abf8eca45..d69b0d2bc98 100644 --- a/src/vs/base/parts/tree/browser/treeModel.ts +++ b/src/vs/base/parts/tree/browser/treeModel.ts @@ -453,7 +453,13 @@ export class Item { private refreshChildren(recursive: boolean, safe: boolean = false, force: boolean = false): WinJS.Promise { if (!force && !this.isExpanded()) { - this.needsChildrenRefresh = true; + const setNeedsChildrenRefresh = (item: Item) => { + item.needsChildrenRefresh = true; + item.forEachChild(setNeedsChildrenRefresh); + }; + + setNeedsChildrenRefresh(this); + return WinJS.TPromise.as(this); } @@ -511,8 +517,14 @@ export class Item { return child.doRefresh(recursive, true); })); } else { - this.mapEachChild(child => child.updateVisibility()); - return WinJS.TPromise.as(null); + return WinJS.Promise.join(this.mapEachChild((child) => { + if (child.needsChildrenRefresh) { + return child.doRefresh(recursive, true); + } else { + child.updateVisibility(); + return WinJS.TPromise.as(null); + } + })); } }); -- GitLab