diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts index 90dc2031d9b..b91ee43373d 100644 --- a/src/vs/base/browser/ui/tree/abstractTree.ts +++ b/src/vs/base/browser/ui/tree/abstractTree.ts @@ -37,17 +37,18 @@ class TreeNodeListDragAndDrop implements IListDragAndDrop< onDragOver(data: IDragAndDropData, targetNode: ITreeNode | undefined, targetIndex: number | undefined, originalEvent: DragEvent, raw = true): boolean | IListDragOverReaction { const result = this.dnd.onDragOver(data, targetNode && targetNode.element, targetIndex, originalEvent); + const didChangeAutoExpandNode = this.autoExpandNode !== targetNode; + + if (didChangeAutoExpandNode) { + this.autoExpandDisposable.dispose(); + this.autoExpandNode = targetNode; + } if (typeof targetNode === 'undefined') { return result; } - if (this.autoExpandNode !== targetNode) { - this.autoExpandDisposable.dispose(); - this.autoExpandNode = targetNode; - } - - if (typeof result !== 'boolean' && result.autoExpand) { + if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) { this.autoExpandDisposable = timeout(() => { const model = this.modelProvider(); const ref = model.getNodeLocation(targetNode);