From 140f0ddcfb67614fca835b43b003d41a2d936608 Mon Sep 17 00:00:00 2001 From: Kazuki Yamaguchi Date: Sun, 6 Oct 2019 15:22:46 +0900 Subject: hide in the task tray when standalone window is closed --- WarframeClock/App.xaml.cs | 1 + WarframeClock/OverlayWindow.xaml.cs | 2 +- WarframeClock/StandaloneOverlayWindow.xaml.cs | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/WarframeClock/App.xaml.cs b/WarframeClock/App.xaml.cs index 6dbbda5..f5f92f3 100644 --- a/WarframeClock/App.xaml.cs +++ b/WarframeClock/App.xaml.cs @@ -57,6 +57,7 @@ namespace WarframeClock Text = $"Warframe Clock - {App.VersionString}", Visible = true }; + _notifyIcon.Click += (_, __) => MainWindow.Show(); // Last, start the main window if (Settings.Standalone) diff --git a/WarframeClock/OverlayWindow.xaml.cs b/WarframeClock/OverlayWindow.xaml.cs index e469d6f..63df9b5 100644 --- a/WarframeClock/OverlayWindow.xaml.cs +++ b/WarframeClock/OverlayWindow.xaml.cs @@ -41,7 +41,7 @@ namespace WarframeClock { if (e.PropertyName == nameof(OverlayWindowViewModel.Standalone) && _vm.Standalone) { - new StandaloneOverlayWindow(_vm).Show(); + (App.Current.MainWindow = new StandaloneOverlayWindow(_vm)).Show(); Close(); } } diff --git a/WarframeClock/StandaloneOverlayWindow.xaml.cs b/WarframeClock/StandaloneOverlayWindow.xaml.cs index 00be945..86cdcc1 100644 --- a/WarframeClock/StandaloneOverlayWindow.xaml.cs +++ b/WarframeClock/StandaloneOverlayWindow.xaml.cs @@ -11,6 +11,7 @@ namespace WarframeClock public partial class StandaloneOverlayWindow : Window { private readonly OverlayWindowViewModel _vm; + private bool _closing = false; public StandaloneOverlayWindow(OverlayWindowViewModel vm) { @@ -20,6 +21,17 @@ namespace WarframeClock _vm.PropertyChanged += OnVmPropertyChanged; } + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + + if (!_closing) + { + e.Cancel = true; + Hide(); + } + } + protected override void OnClosed(EventArgs e) { base.OnClosed(e); @@ -30,7 +42,8 @@ namespace WarframeClock { if (e.PropertyName == nameof(OverlayWindowViewModel.Standalone) && !_vm.Standalone) { - new OverlayWindow(_vm).Show(); + (App.Current.MainWindow = new OverlayWindow(_vm)).Show(); + _closing = true; Close(); } } -- cgit v1.2.3