提交 069a812b 编写于 作者: S SteVen Batten

make it easier to use the mouse with submenus

refs #52939
上级 81158227
...@@ -92,7 +92,9 @@ export class Menu { ...@@ -92,7 +92,9 @@ export class Menu {
} }
public focus() { public focus() {
this.actionBar.focus(true); if (this.actionBar) {
this.actionBar.focus(true);
}
} }
public dispose() { public dispose() {
...@@ -150,6 +152,7 @@ class MenuActionItem extends ActionItem { ...@@ -150,6 +152,7 @@ class MenuActionItem extends ActionItem {
class SubmenuActionItem extends MenuActionItem { class SubmenuActionItem extends MenuActionItem {
private mysubmenu: Menu; private mysubmenu: Menu;
private mouseOver: boolean;
constructor( constructor(
action: IAction, action: IAction,
...@@ -185,14 +188,30 @@ class SubmenuActionItem extends MenuActionItem { ...@@ -185,14 +188,30 @@ class SubmenuActionItem extends MenuActionItem {
}); });
$(this.builder).on(EventType.MOUSE_OVER, (e) => { $(this.builder).on(EventType.MOUSE_OVER, (e) => {
this.cleanupExistingSubmenu(false); if (!this.mouseOver) {
this.createSubmenu(); this.mouseOver = true;
setTimeout(() => {
if (this.mouseOver) {
this.cleanupExistingSubmenu(false);
this.createSubmenu();
}
}, 250);
}
}); });
$(this.builder).on(EventType.MOUSE_LEAVE, (e) => { $(this.builder).on(EventType.MOUSE_LEAVE, (e) => {
this.parentData.parent.focus(); this.mouseOver = false;
this.cleanupExistingSubmenu(true);
setTimeout(() => {
if (!this.mouseOver && this.parentData.submenu === this.mysubmenu) {
this.parentData.parent.focus();
this.cleanupExistingSubmenu(true);
}
}, 750);
}); });
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册