Skip to content

Commit 82ffae1

Browse files
authored
Merge pull request microsoft#261091 from microsoft/osortega/fix-cancel-refresh-promises
Fix for setInput canceling all refresh promises
2 parents 04b5641 + 85eb364 commit 82ffae1

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/vs/base/browser/ui/tree/asyncDataTree.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -791,12 +791,14 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
791791
await this._updateChildren(element, recursive, rerender, undefined, options);
792792
}
793793

794-
cancelAllRefreshPromises(): void {
794+
cancelAllRefreshPromises(includeSubTrees: boolean = false): void {
795795
this.refreshPromises.forEach(promise => promise.cancel());
796796
this.refreshPromises.clear();
797797

798-
this.subTreeRefreshPromises.forEach(promise => promise.cancel());
799-
this.subTreeRefreshPromises.clear();
798+
if (includeSubTrees) {
799+
this.subTreeRefreshPromises.forEach(promise => promise.cancel());
800+
this.subTreeRefreshPromises.clear();
801+
}
800802
}
801803

802804
private async _updateChildren(element: TInput | T = this.root.element, recursive = true, rerender = false, viewStateContext?: IAsyncDataTreeViewStateContext<TInput, T>, options?: IAsyncDataTreeUpdateChildrenOptions<T>): Promise<void> {

src/vs/workbench/contrib/search/browser/searchView.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2648,7 +2648,7 @@ class RefreshTreeController extends Disposable {
26482648
private queuedIChangeEvents: IChangeEvent[] = [];
26492649

26502650
public clearAllPending(): void {
2651-
this.searchView.getControl().cancelAllRefreshPromises();
2651+
this.searchView.getControl().cancelAllRefreshPromises(true);
26522652
}
26532653

26542654
public async queue(e?: IChangeEvent): Promise<void> {

0 commit comments

Comments
 (0)