From 1fb842763a1f47ae78bb2be88cf2c8a01e54f2ea Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 9 Mar 2016 15:43:47 +0100 Subject: [PATCH] Revert "fixes #3294" This reverts commit 16a8d1d12fd2325eef98251f8c99e8f06c06dacb. --- src/vs/base/parts/tree/browser/treeModel.ts | 4 +++- src/vs/base/parts/tree/browser/treeView.ts | 19 +++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/src/vs/base/parts/tree/browser/treeModel.ts b/src/vs/base/parts/tree/browser/treeModel.ts index 83af1193b66..895f2c26457 100644 --- a/src/vs/base/parts/tree/browser/treeModel.ts +++ b/src/vs/base/parts/tree/browser/treeModel.ts @@ -808,7 +808,7 @@ export class TreeModel extends Events.EventEmitter { this.addEmitter2(this.registry), this.registry.addListener2('item:dispose', (event: IItemDisposeEvent) => { event.item.getAllTraits() - .forEach(trait => this.removeTraits(trait, [event.item])); + .forEach(trait => delete this.traitsToItems[trait][event.item.id]); }) ); @@ -1126,6 +1126,8 @@ export class TreeModel extends Events.EventEmitter { public setFocus(element?: any, eventPayload?: any): void { this.setTraits('focused', element ? [element] : []); + var eventData: _.IFocusEvent = { focus: this.getFocus(), payload: eventPayload }; + this.emit('focus', eventData); } public isFocused(element: any): boolean { diff --git a/src/vs/base/parts/tree/browser/treeView.ts b/src/vs/base/parts/tree/browser/treeView.ts index 366ed383c13..856dcb0bd74 100644 --- a/src/vs/base/parts/tree/browser/treeView.ts +++ b/src/vs/base/parts/tree/browser/treeView.ts @@ -330,10 +330,6 @@ export class ViewItem implements IViewItem { this.row = null; } - hasDOMFocus(): boolean { - return this.row && this.row.element && DOM.isAncestor(document.activeElement, this.row.element); - } - public dispose(): void { this.row = null; this.model = null; @@ -728,6 +724,9 @@ export class TreeView extends HeightMap implements IScrollable { case 'item:removeTrait': this.onItemRemoveTrait(data); break; + case 'focus': + this.onModelFocusChange(); + break; } } @@ -1072,10 +1071,6 @@ export class TreeView extends HeightMap implements IScrollable { } } } - - if (e.trait === 'focused') { - setTimeout(() => this.onModelFocusChange()); - } } private onItemRemoveTrait(e:Model.IItemTraitEvent): void { @@ -1094,10 +1089,6 @@ export class TreeView extends HeightMap implements IScrollable { } delete this.highlightedItemWasDraggable; } - - if (e.trait === 'focused') { - setTimeout(() => this.onModelFocusChange()); - } } private onModelFocusChange(): void { @@ -1610,10 +1601,6 @@ export class TreeView extends HeightMap implements IScrollable { } private removeItemFromDOM(item: ViewItem): void { - if (item.hasDOMFocus()) { - this.focus(); - } - item.removeFromDOM(); } -- GitLab