diff --git a/src/vs/base/browser/ui/menu/menubar.ts b/src/vs/base/browser/ui/menu/menubar.ts index fabd7faafd0..dd25308bec5 100644 --- a/src/vs/base/browser/ui/menu/menubar.ts +++ b/src/vs/base/browser/ui/menu/menubar.ts @@ -80,6 +80,7 @@ export class MenuBar extends Disposable { private numMenusShown: number; private menuStyle: IMenuStyles; + private overflowLayoutScheduled: IDisposable; constructor(private container: HTMLElement, private options: IMenuBarOptions = {}) { super(); @@ -375,6 +376,8 @@ export class MenuBar extends Disposable { DOM.removeNode(this.overflowMenu.titleElement); DOM.removeNode(this.overflowMenu.buttonElement); + + this.overflowLayoutScheduled = dispose(this.overflowLayoutScheduled); } blur(): void { @@ -490,7 +493,12 @@ export class MenuBar extends Disposable { this.updateLabels(menuBarMenu.titleElement, menuBarMenu.buttonElement, menuBarMenu.label); }); - this.updateOverflowAction(); + if (!this.overflowLayoutScheduled) { + this.overflowLayoutScheduled = DOM.scheduleAtNextAnimationFrame(() => { + this.updateOverflowAction(); + this.overflowLayoutScheduled = void 0; + }); + } this.setUnfocusedState(); }