From 4587def4d5252e6f70b694f94d8f85aeb5853688 Mon Sep 17 00:00:00 2001 From: Mark Sujew Date: Thu, 25 Jan 2024 13:51:32 +0100 Subject: [PATCH] Improve title rendering on menu bar change --- .../menu/electron-menu-contribution.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 {