diff --git a/packages/core/src/electron-browser/menu/electron-menu-contribution.ts b/packages/core/src/electron-browser/menu/electron-menu-contribution.ts index 199757021dfbd..0b77749c37bf3 100644 --- a/packages/core/src/electron-browser/menu/electron-menu-contribution.ts +++ b/packages/core/src/electron-browser/menu/electron-menu-contribution.ts @@ -18,7 +18,7 @@ import { inject, injectable, postConstruct } from 'inversify'; import { Command, CommandContribution, CommandRegistry, isOSX, isWindows, MenuModelRegistry, MenuContribution, Disposable, nls } from '../../common'; import { codicon, ConfirmDialog, KeybindingContribution, KeybindingRegistry, PreferenceScope, Widget, - FrontendApplication, FrontendApplicationContribution, CommonMenus, CommonCommands, Dialog, Message, ApplicationShell, + FrontendApplication, FrontendApplicationContribution, CommonMenus, CommonCommands, Dialog, Message, ApplicationShell, PreferenceService, animationFrame, } from '../../browser'; import { ElectronMainMenuFactory } from './electron-main-menu-factory'; import { FrontendApplicationStateService, FrontendApplicationState } from '../../browser/frontend-application-state'; @@ -441,6 +441,9 @@ export class CustomTitleWidget extends Widget { @inject(ApplicationShell) protected readonly applicationShell: ApplicationShell; + @inject(PreferenceService) + protected readonly preferenceService: PreferenceService; + constructor() { super(); this.id = 'theia-custom-title'; @@ -452,6 +455,11 @@ export class CustomTitleWidget extends Widget { this.windowTitleService.onDidChangeTitle(title => { this.updateTitle(title); }); + this.preferenceService.onPreferenceChanged(e => { + if (e.preferenceName === 'window.menuBarVisibility') { + animationFrame().then(() => this.adjustTitleToCenter()); + } + }); } protected override onResize(msg: Widget.ResizeMessage): void {