未验证 提交 79acca17 编写于 作者: S SteVen Batten 提交者: GitHub

updating menu behavior for when to select first entry (#54953)

上级 7c59c2f9
......@@ -408,6 +408,8 @@ export class ActionBar implements IActionRunner {
this.domNode = document.createElement('div');
this.domNode.className = 'monaco-action-bar';
this.domNode.tabIndex = 0;
if (options.animated !== false) {
DOM.addClass(this.domNode, 'animated');
}
......
......@@ -93,9 +93,9 @@ export class Menu {
return this.actionBar.onDidBlur;
}
public focus() {
public focus(selectFirst = true) {
if (this.actionBar) {
this.actionBar.focus(true);
this.actionBar.focus(selectFirst);
}
}
......@@ -256,7 +256,7 @@ class SubmenuActionItem extends MenuActionItem {
this.showScheduler = new RunOnceScheduler(() => {
if (this.mouseOver) {
this.cleanupExistingSubmenu(false);
this.createSubmenu();
this.createSubmenu(false);
}
}, 250);
......@@ -280,7 +280,7 @@ class SubmenuActionItem extends MenuActionItem {
if (event.equals(KeyCode.RightArrow)) {
EventHelper.stop(e, true);
this.createSubmenu();
this.createSubmenu(true);
}
});
......@@ -310,7 +310,7 @@ class SubmenuActionItem extends MenuActionItem {
// stop clicking from trying to run an action
EventHelper.stop(e, true);
this.createSubmenu();
this.createSubmenu(false);
}
private cleanupExistingSubmenu(force: boolean) {
......@@ -325,7 +325,7 @@ class SubmenuActionItem extends MenuActionItem {
}
}
private createSubmenu() {
private createSubmenu(selectFirstItem = true) {
if (!this.parentData.submenu) {
this.submenuContainer = $(this.builder).div({ class: 'monaco-submenu menubar-menu-items-holder context-view' });
......@@ -356,11 +356,11 @@ class SubmenuActionItem extends MenuActionItem {
this.parentData.submenu = new Menu(this.submenuContainer.getHTMLElement(), this.submenuActions, this.submenuOptions);
this.parentData.submenu.focus();
this.parentData.submenu.focus(selectFirstItem);
this.mysubmenu = this.parentData.submenu;
} else {
this.parentData.submenu.focus();
this.parentData.submenu.focus(false);
}
}
......
......@@ -82,7 +82,7 @@ export class ContextMenuHandler {
menu.onDidCancel(() => this.contextViewService.hideContextView(true), null, menuDisposables);
menu.onDidBlur(() => this.contextViewService.hideContextView(true), null, menuDisposables);
menu.focus();
menu.focus(!!delegate.autoSelectFirstItem);
return combinedDisposable([...menuDisposables, menu]);
},
......
......@@ -298,7 +298,7 @@ export class MenubarPart extends Part {
}
if (this.focusedMenu) {
this.showCustomMenu(this.focusedMenu.index);
this.showCustomMenu(this.focusedMenu.index, !!this._modifierKeyStatus && this._modifierKeyStatus.altKey);
}
break;
}
......@@ -664,7 +664,7 @@ export class MenubarPart extends Part {
this.setUnfocusedState();
} else {
this.cleanupCustomMenu();
this.showCustomMenu(menuIndex);
this.showCustomMenu(menuIndex, !!this._modifierKeyStatus && this._modifierKeyStatus.altKey);
}
} else {
this.focusedMenu = { index: menuIndex };
......@@ -679,7 +679,7 @@ export class MenubarPart extends Part {
if (this.isOpen && !this.isCurrentMenu(menuIndex)) {
this.customMenus[menuIndex].buttonElement.domFocus();
this.cleanupCustomMenu();
this.showCustomMenu(menuIndex);
this.showCustomMenu(menuIndex, false);
} else if (this.isFocused && !this.isOpen) {
this.focusedMenu = { index: menuIndex };
this.customMenus[menuIndex].buttonElement.domFocus();
......@@ -881,7 +881,7 @@ export class MenubarPart extends Part {
}
}
private showCustomMenu(menuIndex: number): void {
private showCustomMenu(menuIndex: number, selectFirst = true): void {
const customMenu = this.customMenus[menuIndex];
let menuHolder = $(customMenu.buttonElement).div({ class: 'menubar-menu-items-holder' });
......@@ -911,7 +911,7 @@ export class MenubarPart extends Part {
}, 100);
}));
menuWidget.focus();
menuWidget.focus(selectFirst);
this.focusedMenu = {
index: menuIndex,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册