refactor(fonts): hybrid FontManager init via SuppressAutoRebuild
Move font handle creation from BuildFonts() into the FontManager ctor inside a single atlas.SuppressAutoRebuild() block. Axis, AxisItalic and FontAwesome become init-only IFontHandle properties; RegularFont and ItalicFont stay mutable so the live font-settings rebuild path keeps working without a plugin reload. - BuildFonts() renamed to RebuildDelegateFonts(), scope reduced to the delegate fonts only - BuildFontsAsync() removed; Task.Run had no purpose with ctor-init - FontManagerInitHostedService deleted; PluginHostFactory drops the matching AddHostedService registration - PluginHostFactory FontManager registration takes IDalamudPluginInterface via factory lambda - Settings save path now calls RebuildDelegateFonts() instead of BuildFonts() - Plugin.Draw push site gets a null-forgiving for the nullable RegularFont with a one-line WHY
This commit is contained in:
@@ -11,17 +11,6 @@ namespace HellionChat.Infrastructure.Hosting;
|
||||
// at Build, which runs the service ctor (IPC subscribe etc.) right then
|
||||
// instead of lazily on first GetRequiredService.
|
||||
|
||||
internal sealed class FontManagerInitHostedService(FontManager fontManager) : IHostedService
|
||||
{
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
fontManager.BuildFonts();
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask;
|
||||
}
|
||||
|
||||
internal sealed class ThemeRegistryInitHostedService(ThemeRegistry registry) : IHostedService
|
||||
{
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
|
||||
Reference in New Issue
Block a user