This commit is contained in:
fonaix 2024-12-05 15:22:30 +08:00 committed by GitHub
commit 224677eb8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 4 deletions

View file

@ -31,9 +31,17 @@ public partial class App : Application
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{ {
AppHandler.Instance.InitComponents(); AppHandler.Instance.InitComponents();
desktop.ShutdownMode = Avalonia.Controls.ShutdownMode.OnExplicitShutdown;
desktop.Exit += OnExit; desktop.Exit += OnExit;
desktop.MainWindow = new MainWindow(); var mainWindow = new MainWindow();
if (!AppHandler.Instance.Config.UiItem.AutoHideStartup)
{
desktop.MainWindow = mainWindow;
}
else
{
desktop.MainWindow = null;
}
} }
base.OnFrameworkInitializationCompleted(); base.OnFrameworkInitializationCompleted();

View file

@ -396,6 +396,10 @@ namespace v2rayN.Desktop.Views
if (bl) if (bl)
{ {
this.Show(); this.Show();
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
desktop.MainWindow = this;
}
if (this.WindowState == WindowState.Minimized) if (this.WindowState == WindowState.Minimized)
{ {
this.WindowState = WindowState.Normal; this.WindowState = WindowState.Normal;

View file

@ -77,9 +77,13 @@ namespace v2rayN.Desktop.Views
{ {
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{ {
desktop.MainWindow.Icon = AvaUtils.GetAppIcon(_config.SystemProxyItem.SysProxyType); var icon = AvaUtils.GetAppIcon(_config.SystemProxyItem.SysProxyType);
if (desktop.MainWindow != null)
{
desktop.MainWindow.Icon = icon;
}
var iconslist = TrayIcon.GetIcons(Application.Current); var iconslist = TrayIcon.GetIcons(Application.Current);
iconslist[0].Icon = desktop.MainWindow.Icon; iconslist[0].Icon = icon;
TrayIcon.SetIcons(Application.Current, iconslist); TrayIcon.SetIcons(Application.Current, iconslist);
} }
} }