From fee735ed37f6be94bdd0de5206bb9b22c213bfdd Mon Sep 17 00:00:00 2001 From: SteVen Batten <6561887+sbatten@users.noreply.github.com> Date: Fri, 7 Dec 2018 13:56:55 -0800 Subject: [PATCH] schedule update overflow action due to reflow (#64634) * schedule update overflow action due to reflow fixes #64514 * removed disposal --- src/vs/base/browser/ui/menu/menubar.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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(); }