mirror of
https://github.com/Microsoft/vscode
synced 2024-10-13 14:57:14 +00:00
fixes #55439
This commit is contained in:
parent
d91fdfd8d1
commit
49bce6d9dc
|
@ -241,6 +241,8 @@ class MenuActionItem extends BaseActionItem {
|
|||
class SubmenuActionItem extends MenuActionItem {
|
||||
private mysubmenu: Menu;
|
||||
private submenuContainer: Builder;
|
||||
private mouseOver: boolean;
|
||||
private showScheduler: RunOnceScheduler;
|
||||
private hideScheduler: RunOnceScheduler;
|
||||
|
||||
constructor(
|
||||
|
@ -251,6 +253,13 @@ class SubmenuActionItem extends MenuActionItem {
|
|||
) {
|
||||
super(action, action, { label: true, isMenu: true });
|
||||
|
||||
this.showScheduler = new RunOnceScheduler(() => {
|
||||
if (this.mouseOver) {
|
||||
this.cleanupExistingSubmenu(false);
|
||||
this.createSubmenu(false);
|
||||
}
|
||||
}, 250);
|
||||
|
||||
this.hideScheduler = new RunOnceScheduler(() => {
|
||||
if ((!isAncestor(document.activeElement, this.builder.getHTMLElement()) && this.parentData.submenu === this.mysubmenu)) {
|
||||
this.parentData.parent.focus(false);
|
||||
|
@ -283,8 +292,15 @@ class SubmenuActionItem extends MenuActionItem {
|
|||
});
|
||||
|
||||
$(this.builder).on(EventType.MOUSE_OVER, (e) => {
|
||||
this.cleanupExistingSubmenu(false);
|
||||
this.createSubmenu(false);
|
||||
if (!this.mouseOver) {
|
||||
this.mouseOver = true;
|
||||
|
||||
this.showScheduler.schedule();
|
||||
}
|
||||
});
|
||||
|
||||
$(this.builder).on(EventType.MOUSE_LEAVE, (e) => {
|
||||
this.mouseOver = false;
|
||||
});
|
||||
|
||||
$(this.builder).on(EventType.FOCUS_OUT, (e) => {
|
||||
|
|
Loading…
Reference in a new issue