Handle window closing event

This commit is contained in:
Vladimir Eremeev 2024-12-24 20:15:40 +03:00
parent 35eafd6784
commit bae81d20d5
2 changed files with 13 additions and 3 deletions

View file

@ -210,7 +210,7 @@ namespace SourceGit
] ]
} }
}; };
icons[0].Clicked += (_, _) => ShowWindow();
TrayIcon.SetIcons(Current, icons); TrayIcon.SetIcons(Current, icons);
} }
} }
@ -576,11 +576,15 @@ namespace SourceGit
if (desktop.Args != null && desktop.Args.Length == 1 && Directory.Exists(desktop.Args[0])) if (desktop.Args != null && desktop.Args.Length == 1 && Directory.Exists(desktop.Args[0]))
startupRepo = desktop.Args[0]; startupRepo = desktop.Args[0];
var pref = ViewModels.Preference.Instance;
if (pref.SystemTrayIcon) {
desktop.ShutdownMode = ShutdownMode.OnExplicitShutdown;
}
_launcher = new ViewModels.Launcher(startupRepo); _launcher = new ViewModels.Launcher(startupRepo);
desktop.MainWindow = new Views.Launcher() { DataContext = _launcher }; desktop.MainWindow = new Views.Launcher() { DataContext = _launcher };
#if !DISABLE_UPDATE_DETECTION #if !DISABLE_UPDATE_DETECTION
var pref = ViewModels.Preference.Instance;
if (pref.ShouldCheck4UpdateOnStartup()) if (pref.ShouldCheck4UpdateOnStartup())
Check4Update(); Check4Update();
#endif #endif

View file

@ -255,7 +255,13 @@ namespace SourceGit.Views
protected override void OnClosing(WindowClosingEventArgs e) protected override void OnClosing(WindowClosingEventArgs e)
{ {
var pref = ViewModels.Preference.Instance;
if (pref.SystemTrayIcon) {
e.Cancel = true;
Hide();
} else {
(DataContext as ViewModels.Launcher)?.Quit(Width, Height); (DataContext as ViewModels.Launcher)?.Quit(Width, Height);
}
base.OnClosing(e); base.OnClosing(e);
} }