From 52438d64db948ab5df094c504eaefbb509d304e5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 12 Sep 2016 23:30:37 +0200 Subject: [PATCH] Don't try to invalidate an already closed window. And make sure the window is hidden before `_window.Dispose` is called. Fixes #729. --- src/Gtk/Avalonia.Gtk/WindowImplBase.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Gtk/Avalonia.Gtk/WindowImplBase.cs b/src/Gtk/Avalonia.Gtk/WindowImplBase.cs index f5c046bca2..a9ecfa4058 100644 --- a/src/Gtk/Avalonia.Gtk/WindowImplBase.cs +++ b/src/Gtk/Avalonia.Gtk/WindowImplBase.cs @@ -134,7 +134,7 @@ namespace Avalonia.Gtk public void Invalidate(Rect rect) { - if (_window.GdkWindow != null) + if (_window?.GdkWindow != null) _window.GdkWindow.InvalidateRect( new Rectangle((int) rect.X, (int) rect.Y, (int) rect.Width, (int) rect.Height), true); } @@ -306,7 +306,9 @@ namespace Avalonia.Gtk public void Dispose() { + _window.Hide(); _window.Dispose(); + _window = null; } } }