提交 707134ef 编写于 作者: I isidor

Add "Focus Activity Bar" action

fixes #108999
上级 114b9691
......@@ -21,7 +21,7 @@ export const enum ActionsOrientation {
}
export interface ActionTrigger {
keys: KeyCode[];
keys?: KeyCode[];
keyDown: boolean;
}
......@@ -80,9 +80,9 @@ export class ActionBar extends Disposable implements IActionRunner {
this.options = options;
this._context = options.context ?? null;
this._orientation = this.options.orientation ?? ActionsOrientation.HORIZONTAL;
this._triggerKeys = this.options.triggerKeys ?? {
keys: [KeyCode.Enter, KeyCode.Space],
keyDown: false
this._triggerKeys = {
keyDown: this.options.triggerKeys?.keyDown ?? false,
keys: this.options.triggerKeys?.keys ?? [KeyCode.Enter, KeyCode.Space]
};
if (this.options.actionRunner) {
......
......@@ -11,7 +11,7 @@ import { Part } from 'vs/workbench/browser/part';
import { GlobalActivityActionViewItem, ViewContainerActivityAction, PlaceHolderToggleCompositePinnedAction, PlaceHolderViewContainerActivityAction, AccountsActionViewItem, HomeAction, HomeActionViewItem, ACCOUNTS_VISIBILITY_PREFERENCE_KEY } from 'vs/workbench/browser/parts/activitybar/activitybarActions';
import { IBadge, NumberBadge } from 'vs/workbench/services/activity/common/activity';
import { IWorkbenchLayoutService, Parts } from 'vs/workbench/services/layout/browser/layoutService';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
import { IDisposable, toDisposable, DisposableStore, Disposable } from 'vs/base/common/lifecycle';
import { ToggleActivityBarVisibilityAction, ToggleMenuBarAction, ToggleSidebarPositionAction } from 'vs/workbench/browser/actions/layoutActions';
import { IThemeService, IColorTheme } from 'vs/platform/theme/common/themeService';
......@@ -41,6 +41,8 @@ import { Action, Separator } from 'vs/base/common/actions';
import { Event } from 'vs/base/common/event';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { KeyCode } from 'vs/base/common/keyCodes';
import { Action2, registerAction2 } from 'vs/platform/actions/common/actions';
import { CATEGORIES } from 'vs/workbench/common/actions';
interface IPlaceholderViewContainer {
id: string;
......@@ -1042,4 +1044,22 @@ export class ActivitybarPart extends Part implements IActivityBarService {
}
}
class FocusActivityBarAction extends Action2 {
constructor() {
super({
id: 'workbench.action.focusActivityBar',
title: { value: nls.localize('focusActivityBar', "Focus Activity Bar"), original: 'Focus Activity Bar' },
category: CATEGORIES.View,
f1: true
});
}
async run(accessor: ServicesAccessor): Promise<void> {
const activityBarService = accessor.get(IActivityBarService);
activityBarService.focusActivityBar();
}
}
registerSingleton(IActivityBarService, ActivitybarPart);
registerAction2(FocusActivityBarAction);
......@@ -227,7 +227,8 @@ export class CompositeBar extends Widget implements ICompositeBar {
ariaLabel: nls.localize('activityBarAriaLabel', "Active View Switcher"),
animated: false,
preventLoopNavigation: this.options.preventLoopNavigation,
ignoreOrientationForPreviousAndNextKey: true
ignoreOrientationForPreviousAndNextKey: true,
triggerKeys: { keyDown: true }
}));
// Contextmenu for composites
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册