Path: blob/main/src/vs/workbench/contrib/codeEditor/electron-browser/displayChangeRemeasureFonts.ts
5281 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { ThrottledDelayer } from '../../../../base/common/async.js';6import { Disposable } from '../../../../base/common/lifecycle.js';7import { FontMeasurements } from '../../../../editor/browser/config/fontMeasurements.js';8import { INativeHostService } from '../../../../platform/native/common/native.js';9import { Registry } from '../../../../platform/registry/common/platform.js';10import { Extensions as WorkbenchExtensions, IWorkbenchContribution, IWorkbenchContributionsRegistry } from '../../../common/contributions.js';11import { LifecyclePhase } from '../../../services/lifecycle/common/lifecycle.js';1213class DisplayChangeRemeasureFonts extends Disposable implements IWorkbenchContribution {1415private readonly _delayer = this._register(new ThrottledDelayer(2000));1617constructor(18@INativeHostService nativeHostService: INativeHostService19) {20super();2122this._register(nativeHostService.onDidChangeDisplay(() => {23this._delayer.trigger(() => {24FontMeasurements.clearAllFontInfos();25return Promise.resolve();26});27}));28}29}3031Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench).registerWorkbenchContribution(DisplayChangeRemeasureFonts, LifecyclePhase.Eventually);323334