Browse Source

Close DevTools when inspected window closes.

pull/4200/head
Steven Kirk 6 years ago
parent
commit
b41c1babe9
  1. 22
      src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml.cs

22
src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml.cs

@ -14,8 +14,8 @@ namespace Avalonia.Diagnostics.Views
{ {
internal class MainWindow : Window, IStyleHost internal class MainWindow : Window, IStyleHost
{ {
private readonly IDisposable _keySubscription;
private TopLevel _root; private TopLevel _root;
private IDisposable _keySubscription;
public MainWindow() public MainWindow()
{ {
@ -33,8 +33,22 @@ namespace Avalonia.Diagnostics.Views
{ {
if (_root != value) if (_root != value)
{ {
if (_root != null)
{
_root.Closed -= RootClosed;
}
_root = value; _root = value;
DataContext = new MainViewModel(value);
if (_root != null)
{
_root.Closed += RootClosed;
DataContext = new MainViewModel(value);
}
else
{
DataContext = null;
}
} }
} }
} }
@ -45,6 +59,8 @@ namespace Avalonia.Diagnostics.Views
{ {
base.OnClosed(e); base.OnClosed(e);
_keySubscription.Dispose(); _keySubscription.Dispose();
_root.Closed -= RootClosed;
_root = null;
((MainViewModel)DataContext)?.Dispose(); ((MainViewModel)DataContext)?.Dispose();
} }
@ -70,5 +86,7 @@ namespace Avalonia.Diagnostics.Views
} }
} }
} }
private void RootClosed(object sender, EventArgs e) => Close();
} }
} }

Loading…
Cancel
Save