From 542d6738f032a26fe2bbe8594597de3f315a8543 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2016 16:36:00 +0100 Subject: [PATCH] actionbar: no tabindex if no action --- src/vs/base/browser/ui/actionbar/actionbar.ts | 10 +++++++++- .../browser/parts/activitybar/activitybarPart.ts | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/vs/base/browser/ui/actionbar/actionbar.ts b/src/vs/base/browser/ui/actionbar/actionbar.ts index 434ce6c58c5..069b84a69ea 100644 --- a/src/vs/base/browser/ui/actionbar/actionbar.ts +++ b/src/vs/base/browser/ui/actionbar/actionbar.ts @@ -368,6 +368,7 @@ export interface IActionItemProvider { export interface IActionBarOptions { orientation?:ActionsOrientation; context?:any; + disableTabIndex?:boolean; actionItemProvider?:IActionItemProvider; actionRunner?:actions.IActionRunner; } @@ -424,7 +425,6 @@ export class ActionBar extends Events.EventEmitter implements actions.IActionRun this.domNode = document.createElement('div'); this.domNode.className = 'monaco-action-bar'; - this.domNode.tabIndex = 0; var isVertical = this.options.orientation === ActionsOrientation.VERTICAL; @@ -546,6 +546,10 @@ export class ActionBar extends Events.EventEmitter implements actions.IActionRun this.actionsList.insertBefore(actionItemElement, this.actionsList.children[index++]); } + if (!this.options.disableTabIndex && !this.domNode.hasAttribute('tabIndex')) { + this.domNode.tabIndex = 0; // make sure an action bar with actions participates in tab navigation + } + this.items.push(item); }); } @@ -556,6 +560,10 @@ export class ActionBar extends Events.EventEmitter implements actions.IActionRun item.dispose(); } $(this.actionsList).empty(); + + if (!this.options.disableTabIndex) { + this.domNode.removeAttribute('tabIndex'); // empty action bar does not participate in tab navigation + } } public length():number { diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index 25420da86d3..1e6135abc9e 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -108,7 +108,7 @@ export class ActivitybarPart extends Part implements IActivityService { this.createViewletSwitcher($result.clone()); // Bottom Toolbar with action items for global actions - this.createGlobalToolBarArea($result.clone()); + // this.createGlobalToolBarArea($result.clone()); // not used currently return $result; } @@ -117,9 +117,9 @@ export class ActivitybarPart extends Part implements IActivityService { // Viewlet switcher is on top this.viewletSwitcherBar = new ActionBar(div, { - actionItemProvider: (action: Action) => this.activityActionItems[action.id] + actionItemProvider: (action: Action) => this.activityActionItems[action.id], + disableTabIndex: true // we handle this }); - this.viewletSwitcherBar.getContainer().removeAttribute('tabindex'); this.viewletSwitcherBar.getContainer().addClass('position-top'); // Build Viewlet Actions in correct order -- GitLab