From d250ccb120d9c94424b6c140af230b32aa4e8e14 Mon Sep 17 00:00:00 2001 From: isidor Date: Tue, 4 Apr 2017 16:41:34 +0200 Subject: [PATCH] Revert "actionBar: always dispose action items for now. Debug always recreate focusProcessActionItem" This reverts commit 742c29989198302185633de2fe8a254749f5d649. --- src/vs/base/browser/ui/actionbar/actionbar.ts | 5 +++-- .../workbench/parts/debug/browser/debugActionsWidget.ts | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/vs/base/browser/ui/actionbar/actionbar.ts b/src/vs/base/browser/ui/actionbar/actionbar.ts index d562716a1ad..a49c5ee254f 100644 --- a/src/vs/base/browser/ui/actionbar/actionbar.ts +++ b/src/vs/base/browser/ui/actionbar/actionbar.ts @@ -554,7 +554,8 @@ export class ActionBar extends EventEmitter implements IActionRunner { } public clear(): void { - this.items = lifecycle.dispose(this.items); + // Do not dispose action items if they were provided from outside + this.items = this.options.actionItemProvider ? [] : lifecycle.dispose(this.items); $(this.actionsList).empty(); } @@ -669,7 +670,7 @@ export class ActionBar extends EventEmitter implements IActionRunner { public dispose(): void { if (this.items !== null) { - this.clear(); + lifecycle.dispose(this.items); } this.items = null; diff --git a/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts b/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts index 354085853bd..d3d055fbff3 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionsWidget.ts @@ -52,6 +52,7 @@ export class DebugActionsWidget extends Themable implements IWorkbenchContributi private isVisible: boolean; private isBuilt: boolean; + private focusProcessActionItem: FocusProcessActionItem; constructor( @IMessageService private messageService: IMessageService, @@ -78,7 +79,12 @@ export class DebugActionsWidget extends Themable implements IWorkbenchContributi orientation: ActionsOrientation.HORIZONTAL, actionItemProvider: (action: IAction) => { if (action.id === FocusProcessAction.ID) { - return this.instantiationService.createInstance(FocusProcessActionItem, action); + if (!this.focusProcessActionItem) { + this.focusProcessActionItem = this.instantiationService.createInstance(FocusProcessActionItem, action); + this.toDispose.push(this.focusProcessActionItem); + } + + return this.focusProcessActionItem; } return null;